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