ホームページ  >  に質問  >  本文

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


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

显示如下

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

显示如下

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

怪我咯怪我咯2742日前610

全員に返信(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

    これら 2 つの SQL ステートメントを説明し、タイプとキーの値が異なるかどうかを確認してください。推測では、クエリ列に応じて異なるソート方法が使用されていると思われます (おそらく mysql 自体が最適なソート方法を判断します)。したがって、order by を追加するのが最善です。重複データが見つからないように、質問者は 2 つの SQL ステートメントを試して 1 つのフィールドをクエリし、クエリが 1 つ少ないかどうかを確認してください。並べ替えの結果は異なる可能性があります。タイトルのページング状況を考慮して、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
  • キャンセル返事