2016-08-03 5 views
1

私は、mysqlがプライマリキーまたはユニークキーを使用して行を並べ替えることに気付きました。この注文を無効にすることはできますか?プライマリ/ユニークキーの順序を無効にする

id (prim) │ column1 │ column2 
────────────┼─────────┼────────── 
      │   │   

私は

$rows = [ 
    ["8", "a", "a"], 
    ["4", "b", "b"], 
    ["3", "c", "c"], 
    ["5", "d", "d"], 
]; 

上記の表の中に、以下の配列を挿入した場合、私は私ではなく、主のユニーク使用することが役立つだろうと思ったが、それはしませんでした、次の

id (prim) │ column1 │ column2 
────────────┼─────────┼────────── 
    3   │ c  │ c   
    4   │ b  │ b   
    5   │ d  │ d   
    8   │ a  │ a   

を取得。私はまだ順序付けられた行を取得します。挿入順序で行の元の順序を維持する方法はありませんか?

行は、一次キーまたは一意キーを持つ間に挿入順に格納する必要があります。

id (prim) │ column1 │ column2 
────────────┼─────────┼────────── 
    8   │ a  │ a    
    4   │ b  │ b  
    3   │ c  │ c   
    5   │ d  │ d   

プライマリまたはユニークキーを使用しない場合は、目的の結果が得られます。


この表と配列はデモンストレーションのためのものです。実際のテーブルでは、プライマリキーに自動インクリメントや連続番号/文字列を使用しません。すべての行には一意のランダム識別子があります。 9Z4CQtVd8Z。それらを分類することは目的/利益をもたらさない。私はそれらの挿入順序で行を保持したいと思います。

+0

'select'を実行するときに' order by'を使用します。SQL Serverが返すランダムな順序に依存しないでください。本質的にランダム。 – developerwjk

答えて

0

データの格納順序はまったく重要ではありません。また、mysqlと他のデータベースは、主キー順にデータを格納する保証はありません。データを取得するときには、ORDER BY句を使用する必要があります。

データセットを挿入して特定の順序なしでデータセットを取得すると、挿入したのと同じ順序でデータが返される可能性が高くなります。しかし、その後にいくつかの行を削除した後にさらに挿入を行うと、デフォルトの順序が変わります。

+0

私はすでにクエリを作成するときに行をソートしますが、時にはphpMyAdminを使用して手動でテーブルをチェックして、デフォルトの行順序の変更を見て好奇心をそそられました。私はニックピッキングだと思う:) _データが格納されている順序は、全く興味がない._質問に答えるようだ。 – akinuri

+0

しますが、他に誰かが何か言いたいことがあるかどうか少し調べることを心配しないでください:) – akinuri

関連する問題