2017-10-06 8 views
0

SQLクエリ出力のシーケンスは固定されているか、または変更されていますか?

Table Aには3つの列Col1、Col2、Col3があります。

テーブルの既存のレコードが

クエリで(col1とcol2にはtable Aの主キーです):それは保証されてselect * from A

     OUTPUT 

    COL1    COL2  COL3 
    1     2   3 
    1     2   5 

新しいレコードが挿入されている場合の値(1,2,6) 新しいクエリ結果が

1 2 3 
1 2 5 
1 2 6 
私の選択クエリは、この

1 2 6 
1 2 3 
1 2 5 

のような出力を返した場合、SQLクエリがある

1 2 6 
1 2 3 
1 2 5 

と:か、それはおそらく挿入として、以下の表を生じる可能性も挿入が最初の行の場所を取ることができる可能性があり

select * from A where field1=1 and field2 = 2; 

は、それは常に、このシーケンスを返しますか、これは変動することができることが必要ですか?

+0

'フィールド1とフィールド2はテーブルAの主キーです。本当ですか? –

答えて

1

短い答えはいいえ。

SELECTクエリの順序は、ORDER BY句を追加しない限り保証されません。あなたは順序が保証されたい場合は、このようなクエリを記述することができます。

SELECT field1, field2, field3 
FROM a 
ORDER BY field3; 

いくつかの方法がありますORDERは(UNIONが行われ、例えば場合)時に行うことができるが、それは保証されません。

詳細はthis ASKTOM postthis Stack Overflow questionです。

+0

私は確認できる方法を提案できますか? –

+0

どういう意味ですか、確認してください。 – bbrumm

+0

私は私の答えにいくつかの参照を追加しました。 – bbrumm

関連する問題