Mysql 按字母顺序将空白结果追加到结尾
我想按字母顺序返回项目列表,但将“空”结果附加到末尾,而不是出现在开头。有没有一种方法可以使用MySQL ORDER语句实现这一点,或者其他方法Mysql 按字母顺序将空白结果追加到结尾,mysql,sql-order-by,Mysql,Sql Order By,我想按字母顺序返回项目列表,但将“空”结果附加到末尾,而不是出现在开头。有没有一种方法可以使用MySQL ORDER语句实现这一点,或者其他方法 SELECT * FROM persons WHERE status = 'active' ORDER BY lastName; 我得到的是: Jason Peter Frank Asimov Reda Banks Scott Sorrel 我想要的是: Frank Asimov Reda Banks Scott Sorrel Jason Pet
SELECT * FROM persons WHERE status = 'active' ORDER BY lastName;
我得到的是:
Jason
Peter
Frank Asimov
Reda Banks
Scott Sorrel
我想要的是:
Frank Asimov
Reda Banks
Scott Sorrel
Jason
Peter
我相信你所需要的就是按名字订购:
SELECT * FROM persons WHERE status = 'active' ORDER BY lastName, firstName
您可以使用FIELD语句来完成。事情是这样的:
SELECT [...] ORDER BY FIELD(lastName, '') DESC
这会将所有空字符串lastnames追加到末尾。如果数据库中没有空字符串,而是有空字符串:
SELECT [...] ORDER BY FIELD(lastName, NULL) DESC;
空表示空字符串或空字符串?空表示空字符串+1。您可以改进它:
如果nullif(lastName,'')为null,那么1 else 0 end
如果条目不是null,而是空的,该怎么办?
SELECT [...] ORDER BY FIELD(lastName, NULL) DESC;