2

アイテムを保持するテーブルがあります。

id      name         groups 
1       a1          
2       a2           b1
3       a3
4       c1           
5       c2
6       c3           b1

これらのアイテムを存在しない場合(読み取り:エントリがない-null)で並べ替える、または存在する場合nameは。を使用して並べ替える効果的な方法を見つけたいと思います。groupsgroupsgroups

したがって、次のテーブルを並べ替えると、結果は次のようになります。

a1
a3
a2
c3
c1
c2

助言がありますか?

4

2 に答える 2

2

「空白」がまたはのいずれnullかを意味する場合''は、次を使用します。

select id, name, groups
from mytable
order by if(groups is null or groups = '', name, groups)

「空白」が単にを意味する場合null、この単純なバージョンが機能します。

select id, name, groups
from mytable
order by ifnull(groups, name)
于 2012-08-08T00:03:42.217 に答える
1
ORDER BY CASE WHEN groups = '' OR groups IS NULL THEN name ELSE groups END
于 2012-08-08T00:02:30.593 に答える