数据本来是这样的
然后使用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
これら 2 つの SQL ステートメントを説明し、タイプとキーの値が異なるかどうかを確認してください。推測では、クエリ列に応じて異なるソート方法が使用されていると思われます (おそらく mysql 自体が最適なソート方法を判断します)。したがって、order by を追加するのが最善です。重複データが見つからないように、質問者は 2 つの SQL ステートメントを試して 1 つのフィールドをクエリし、クエリが 1 つ少ないかどうかを確認してください。並べ替えの結果は異なる可能性があります。タイトルのページング状況を考慮して、order by を追加した方がよいでしょう。通常、order by はページングに追加されます。
大家讲道理2017-04-17 16:16:39
主キーがなく、ソートが指定されていない場合は、カオスになります。主キーがなく、データを安定させたい場合は、主キーがデフォルトでソートされます。 、並べ替えフィールドを指定する必要があります