【MySQL】複数カラムを基準にソートする方法【GREATEST】

MySQLを使い並べ替えをする場合に、一つのカラムだけを基準に並べ替えをすると期待通りの結果が出ない場合があります。

たとえば、ソートの基準となるカラムに0がある場合、並べ替えにより0が先頭または最後にくることなどがあります。

この場合には、複数カラムを合わせてソートすることで、期待どおりの結果を得ることができます。

複数カラムを合わせて、どちらか大きい方を基準に並べ替えるには、GREATEST()関数を使います。

SELECT * FROM tbl ORDER BY GREATEST(price1,price2) ASC

こうすることにより、price1カラムとprice2カラムのうちの大きい方を参照して並べ替えることができます。

これに対して、小さい方を参照して並べ替えるには、LEAST()関数を使います。

SELECT * FROM tbl ORDER BY LEAST(price1,price2) ASC

(参考)
http://dev.mysql.com/doc/refman/5.1/ja/comparison-operators.html

以上です。

カテゴリー: MySQL, SQL パーマリンク

コメントを残す

メールアドレスが公開されることはありません。