数据本来是这样的
然后使用SELECT company_id,company_name,tel FROM table LIMIT 5;
显示如下
然后问题就来了,使用SELECT comapny_id,company_name FROM table LIMIT 5;
显示如下
为什么少使用了一列就会导致数据乱序输出呢?
迷茫2017-04-17 16:16:39
테스트 후 테이블에 PRIMARY KEY
이 있으면 PRIMARY KEY
에 따라 정렬됩니다. 없으면 TABLE_INDEX
에 따라 정렬됩니다. 하지만 SHOW INDEX FROM table
뒤에 지정된 필드에 따라 정렬하려면 ORDER BY xx LIMIT xx
를 사용하는 것이 명확하고 간결하며 이해하기 쉽습니다. ORDER BY
怪我咯2017-04-17 16:16:39
이 두 SQL 문을 설명하고 유형과 키 값이 다른지 확인하세요. 쿼리 열에 따라 서로 다른 정렬 방법이 사용되는 것으로 추측됩니다(어쩌면 mysql 자체에서 판단하는 최적의 정렬 방법일 수도 있음). 따라서 order by를 추가하는 것이 가장 좋습니다. 중복된 데이터를 찾는 것을 피하기 위해 질문자는 두 개의 SQL 문을 시도하여 하나의 필드를 쿼리하고 쿼리가 하나 더 적은지 확인할 수 있습니다. 정렬 결과는 다를 수 있습니다. 제목의 페이징 상황에 대해서는 order by를 추가하는 것이 좋습니다. 일반적으로 페이징에는 order by가 추가됩니다.
大家讲道理2017-04-17 16:16:39
기본 키가 없고 정렬이 지정되지 않으면 혼란스러울 것입니다. 기본 키가 있고 데이터를 안정적으로 유지하려면 기본 키가 기본으로 정렬됩니다. , 정렬 필드를 지정해야 합니다