mysql oder by排序把null的字段放在最后面
Posted 宇翊
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mysql oder by排序把null的字段放在最后面相关的知识,希望对你有一定的参考价值。
默认情况下,mysql将null算作最小值。
使用:
if(isnull(字段名),1,0)
说明:它的意思是将该字段根据是否为null值分成两部分,0相当于null值部分放在最后面,1相当于非null值部分放在前面,在排序的时候,先根据这一属性进行升序排列
select city_code, ins_code, organ_type, organ_name, organ_address, organ_access_url, state, longitude, latitude, area, organ_category, adCode, organ_catagery , ROUND( 6371.393 * 2 * ASIN( SQRT( POW( SIN( ( #{latitude,jdbcType=DOUBLE} * PI() / 180 - latitude * PI() / 180 ) / 2 ), 2 ) + COS(#{latitude,jdbcType=DOUBLE} * PI() / 180) * COS(latitude * PI() / 180) * POW( SIN( ( #{longitude,jdbcType=DOUBLE} * PI() / 180 - longitude * PI() / 180 ) / 2 ), 2 ) ) ) * 1000 * #{val} )/1000 AS dis FROM wh_institution where city_code = #{cityCode,jdbcType=VARCHAR} and ins_code = #{insCode,jdbcType=VARCHAR} and organ_type = #{organType,jdbcType=VARCHAR} and state = ‘1‘ ORDER BY if(isnull(dis),1,0), dis, CONVERT(organ_name USING gbk) COLLATE gbk_chinese_ci ASC LIMIT #{startRow},#{endRow}
以上是关于mysql oder by排序把null的字段放在最后面的主要内容,如果未能解决你的问题,请参考以下文章