2

我有一张桌子,里面有物品:

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

我想找出一种有效的方法来对这些项目进行排序,name如果groups不存在(阅读:没有条目 - null),或者如果groups存在,使用groups.

因此,如果我对下表进行排序,结果将是:

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)

如果“空白”意味着 just 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 回答