Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/rest/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 按字母顺序将空白结果追加到结尾_Mysql_Sql Order By - Fatal编程技术网

Mysql 按字母顺序将空白结果追加到结尾

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

我想按字母顺序返回项目列表,但将“空”结果附加到末尾,而不是出现在开头。有没有一种方法可以使用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 
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;