2009-12-29 6 views
0

가장 신선한 데이터에서 가장 오래된 테이블까지 테이블에 무엇이 들어 있는지 표시해야합니다. 이런 식으로 작동하지 않습니다 : SELECT * FROM table ORDER BY DESC;. 나는 그 후 ORDER BY 컬럼의 이름이어야한다고 생각하기 때문에. 하지만 정상적인 순서를 바꾸고 싶습니다. (가장 오래된 데이터부터 가장 신선한 데이터까지 의미합니다.) 이 작업을 수행하는 방법?mysql 테이블을 역전시키는 방법

답변

5

는 반대의 상승, 또는, 하강을 의미 : 당신은 지정하지 않는

SELECT * FROM table ORDER BY column ASC; 

을 BTW, 당신은 열을 지정하지 않은 경우, 당신은 "정상적인 순서"라고 부릅니다 정말 무작위 주문.

0

일부 레코드는 삭제 된 다음 새로운 레코드로 교체되므로 "정상적인 순서"가 항상 가장 오래된 레코드부터 최신 레코드 인 것은 아닙니다. 즉, "자연 질서"는 데이터 집합의 중간에 가장 신선한 항목이있는 것처럼 다소 "무작위 적"으로 나타날 수 있습니다. 당신의 쿼리 DESC에서

0

삽입 날짜 또는 증분 키 열을 추가해야합니다.

물리적 저장 패턴을 사용하여 올바른 주문을 제공 할 수는 없습니다. MySQL의 문서에 의하면, 반환되는 행이 임의의 특정의 순서로되어있는 것은 보증되지 않습니다.

"... 결과 행이 더 특정 순서로 표시됩니다. 행 어떤 의미있는 방식으로 정렬 할 때 쿼리 출력을 검토 을 자주 쉽습니다. 종류의 결과에 주문을 사용 BY 절. "

http://dev.mysql.com/doc/refman/5.0/en/sorting-rows.html

0

당신은 유형 timestamp의 새 필드를 만들고 해당 필드에 다음 다음 CURRENT_TIMESTAMPORDER BY을 기본 값을 설정할 수 있습니다.

0

테이블의 레코드 순서가 실제 레코드 순서와 일치하지 않을 수도 있습니다. 이렇게하려면 정렬 할 수있는 필드를 찾거나 만들어야합니다. '날짜 생성'필드 또는 새 레코드가 추가 될 때 증가하는 id 값 (예 : 주문 ID 등).

0

당신은 ID의, 어쩌면

order by id desc ? :) 
을 autoincremented 한 경우
관련 문제