MSQL 对null和空字符串排序

MSQL 对null和空字符串排序

 

      NULL排序

SELECT * FROM table
ORDER BY field IS NULL, field;

       在MSQL中null默认最小,所以在升序时,字段值为null时会把null排在上面,要想把null排在下面可以使用

ORDER BY field IS NULL, field

 

      在MySQL中 IS NULL 判断 是NULL 返回 1  不是 NULL 返回0,所以order by时如果field为null,那么返回1,不为null返回0,这样升序时null值就排到下面了。

 

      空字符串排序

select field
from table
order by case when ifnull(field,'')='' then 0 else 1 end desc, field asc;

      MYSQL IFNULL(expr1,expr2)       

  
      如果expr1不是NULL,IFNULL()返回expr1,否则它返回expr2。IFNULL()返回一个数字或字符串值,取决于它被使用的上下文环境。

 

 

你可能感兴趣的:(数据库,mysql,数据库)