- ベストアンサー
order by asc,desc混合index
order by で asc ,desc混合する場合indexが使用できないと思いますが、 たとえば、col1,col2,col3があったとして order by col1 asc, col2 desc, col3 asc ➡ order by col1 asc ,99999999 - col2 asc , col3 asc などのように、 col2を、カラムが取りうる最大値から引いてやることでascに置き換えても indexはかからないでしょうか?
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
>mysql.5.1は無いみたいでした。 残念! ではこういうのは 99999999 - col2 asc はできませんから order by col1 asc, col2 desc, col3 asc ➡ order by col1 asc ,dummy1 asc , col3 asc として テーブル追加、変更時にdummy1には 99999999 - col2 を値として設定すればよいです。 逃げですけどね。これしかないかな。
その他の回答 (1)
- maiko0318
- ベストアンサー率21% (1483/6969)
回答No.1
Mysqlになければごめんなさい。 create index に 索引キーを構成する列を以下の形式で定義します。複数の列を指定する場合はカンマで区切って並べます。 列名 [ASCまたはDESC] [, 列名 [ASCまたはDESC] , ....] というのがあります。 小細工しないでも並べてくれますよ。
お礼
ありがとうございます。 mysql.5.1は無いみたいでした。 postgresql,db2,oracleはあるようですね。 ありがとうございました。