3列しかないテーブルがあります。次のクエリを入力すると
select * from MyTable order by 5 and 2;
テーブル内のすべてのものを取得します (結果は の結果と同じですselect * from MyTable;
)。私が最初に期待したのは、何らかのエラーが発生することです。しかし、私はそれを取得しませんでした、なぜですか?
3列しかないテーブルがあります。次のクエリを入力すると
select * from MyTable order by 5 and 2;
テーブル内のすべてのものを取得します (結果は の結果と同じですselect * from MyTable;
)。私が最初に期待したのは、何らかのエラーが発生することです。しかし、私はそれを取得しませんでした、なぜですか?
order by 5 and 2
これは定数式であると解釈されるorder by (5 and 2)
ため、実際の順序付けは行われず、データは挿入された順序で単純に表示されます。
ここで起こっていること5 and 2
は、1 に評価される式として見られることです。しかし、最初の列でソートされた結果を与えるべきではありません。
実際には、ソートされた順序で挿入したため、ソートされたデータしか得られないと思います。この SQLFiddle を見てください。
http://sqlfiddle.com/#!2/3e04e/1
データは でソートされていません。any of the columns
でソートされていvalue 1
ます。
5 と 2 は列インデックスで、5 列目と 2 列目を意味します。
select * from MyTable order by 5,2;
It means start with index 5 and bring 2record i.e 5,6,7