默认情况下,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}