I love iPhone, Android, Cocos2d-x
MySQL で NULL を一番最後にして昇順にソートする
2008.2.27 追記
コメントで教えていただきました下記方法で簡単にできました。
is null asc の指定と 通常の asc の指定をするのがポイントですね。
SELECT id, comment FROM table ORDER BY comment IS NULL ASC, comment ASC;
—–追記ここまで—–
MySQL で昇順にソートすると NULL は一番最初に来ます。
それを最後にできないかということで下記のようなSQL を考えてみました。
SELECT id, comment, CASE WHEN comment IS NULL THEN 10000 ELSE ASCII(LEFT(comment,1)) END AS dummy FROM table ORDER BY dummy ASC, COMMENT ASC
comment カラムを昇順でソートして、NULL の場合は一番最後に NULL がきます。
あまりスマートな方法ではないのですが、これで取り合えず NULL を最後にして昇順でソートするということができました。
ORACLE とかだと下記のように簡単にできますね。
ORDER BY comment ASC NULL LAST
NULLS FIRST
NULL 値を順序の最初にするソートを行なう
NULLS LAST
NULL 値を順序の最後にするソートを行なう
関連する投稿
4 comments
コメントをどうぞ
Additional comments powered by BackType
MySQLの場合、以下のSQLでNULL LAST相当が実現できます。ご参考まで。
SELECT
id,
comment
FROM table
ORDER BY comment IS NULL ASC, COMMENT ASC;
> MeijiK さん
ありがとうございます。
本文にも追記で情報を掲載させていただきました。
[...] MySQL で NULL を一番最後にして昇順にソートする [...]
1subsides…
…