在把查询出来的结果concat时,如果查询结果中有数据为null,那么concat的数据返回值为null。
需要把查询出来的结果进行一个为null的判断,使用if null来对查询的结果进行为null的判断。
错误例子: sql语句中的第二where没有粘全,
改正后的正确Sql:在concat数据时,加上if null进行数据判断为不为null,为null就输出为 ' ' 。如果你的数据类型是int的类型,如果为null时,就输出为0, 将下面sql中的 ' ' 改为0即可。
(
SELECT
a1.store_id AS storeId,
a1.store_code AS storeCode,
a1.store_name AS storeName,
a1.create_time AS createTime,
a2.business_code AS businessStageCode,
a2.business_name AS businessStageName,
concat( ifnull(a3.province_name,''), ifnull(a3.city_name,''), ifnull(a3.district_name,'') ) AS administrativeArea,
a3.province_id AS provinceId,
a3.province_name AS provinceName,
a3.city_id AS cityId,
a3.city_name AS cityName,
a3.area_id AS areaId,
a3.area_name AS areaName,
a3.district_id AS districtId,
a3.district_name AS districtName
FROM
store_info a1
LEFT JOIN business_stage a2 ON a1.business_stage_code = a2.business_code
LEFT JOIN address_extend a3 ON a1.store_id = a3.basic_id
WHERE
1 = 1
AND a2.parent_id = '010100'
) b1
WHERE
1 = 1
ORDER BY
b1.businessStageCode = '010105' DESC,
b1.createTime DESC
LIMIT 50