在MySQL中查询使用Oreder By ASC子句时,默认会把NULL值所在行排在最前面,但我们希望把NULL值排到最后面,这时候需要在编写SQL语句使用一点技巧。那就是ISNULL(排序字段),排序字段 ASC
数据表实例(表名为register)
name sortrank
ZHANG NULL
WANG NULL
LI U 1
ZHAO 2
当使用下面的语句查询时,NULL会被放在最前面:
SELECT fcwr.*,space.f_name FROM `xinmeili`.`$table` fcwr LEFT JOIN `xinmeili`.`uchome_space` space ON fcwr.uid = space.uid WHERE fcwr.checked = 1 ".$where." ORDER BY fcwr.sortrank
为了把NULL放到后面,需要把上面的SQL语句修改成下面的样子
SELECT fcwr.*,space.f_name FROM `xinmeili`.`$table` fcwr LEFT JOIN `xinmeili`.`uchome_space` space ON fcwr.uid = space.uid WHERE fcwr.checked = 1 ".$where." ORDER BY isnull(fcwr.sortrank),fcwr.sortrank ASC
转载于:https://blog.51cto.com/wangyuelucky/863127