찾다

 >  Q&A  >  본문

mysql - 为什么SQL使用limit显示出来的前五行是乱序的


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

显示如下

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

显示如下

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

怪我咯怪我咯2873일 전710

모든 응답(5)나는 대답할 것이다

  • 迷茫

    迷茫2017-04-17 16:16:39

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

    회신하다
    0
  • 怪我咯

    怪我咯2017-04-17 16:16:39

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

    회신하다
    0
  • PHP中文网

    PHP中文网2017-04-17 16:16:39

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

    회신하다
    0
  • ringa_lee

    ringa_lee2017-04-17 16:16:39

    으아아아

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

    회신하다
    0
  • 大家讲道理

    大家讲道理2017-04-17 16:16:39

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

    회신하다
    0
  • 취소회신하다