mysql - 为什么SQL使用limit显示出来的前五行是乱序的
怪我咯
怪我咯 2017-04-17 16:14:39
0
5
704


数据本来是这样的
然后使用
SELECT company_id,company_name,tel FROM table LIMIT 5;

显示如下

然后问题就来了,使用
SELECT comapny_id,company_name FROM table LIMIT 5;

显示如下

为什么少使用了一列就会导致数据乱序输出呢?

怪我咯
怪我咯

走同样的路,发现不同的人生

모든 응답(5)
迷茫

테스트 후 테이블에 PRIMARY KEY이 있으면 PRIMARY KEY에 따라 정렬됩니다. 없으면 TABLE_INDEX에 따라 정렬됩니다. 하지만 SHOW INDEX FROM table 뒤에 지정된 필드에 따라 정렬하려면 ORDER BY xx LIMIT xx를 사용하는 것이 명확하고 간결하며 이해하기 쉽습니다. ORDER BY

刘奇

이 두 SQL 문을 설명하고 유형과 키 값이 다른지 확인하세요. 쿼리 열에 따라 서로 다른 정렬 방법이 사용되는 것으로 추측됩니다(어쩌면 mysql 자체에서 판단하는 최적의 정렬 방법일 수도 있음). 따라서 order by를 추가하는 것이 가장 좋습니다. 중복된 데이터를 찾는 것을 피하기 위해 질문자는 두 개의 SQL 문을 시도하여 하나의 필드를 쿼리하고 쿼리가 하나 더 적은지 확인할 수 있습니다. 정렬 결과는 다를 수 있습니다. 제목의 페이징 상황에 대해서는 order by를 추가하는 것이 좋습니다. 일반적으로 페이징에는 order by가 추가됩니다.

Ty80

이해를 돕기 위해 정렬 열을 지정하지 않았습니다. 그렇지 않으면 무작위로 몇 개만 제공됩니다.

左手右手慢动作

으아아아

사용된 인덱스 보기
인덱스에 따라 정렬될 수도 있습니다

大家讲道理

기본 키가 없고 정렬이 지정되지 않으면 혼란스러울 것입니다. 기본 키가 있고 데이터를 안정적으로 유지하려면 기본 키가 기본으로 정렬됩니다. , 정렬 필드를 지정해야 합니다

최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿