码迷,mamicode.com
首页 > 数据库 > 详细

MySQL 左连接时,查询条件查询某个字段为空或者为特定值解决方案

时间:2020-05-09 14:21:15      阅读:292      评论:0      收藏:0      [点我收藏+]

标签:where   code   art   type   ase   查询条件   lse   数据   apply   

rt,在查询时候需要查出字段为空或者为某个特定值的数据,但是又不想使用or去组合。使用函数IFNULL,

IFNULL(ca.is_on_sale,1)

IFNULL() 函数用于判断第一个表达式是否为 NULL,如果为 NULL 则返回第二个参数的值,如果不为 NULL 则返回第一个参数的值。

但当用于查询条件时,查询空数据需要注意。

(SELECT parent_id from menu where code = #{menuCode} and parent_id != 0) 

当这条语句返回null时,整条语句的返回值都是空的(where分支比select分支优先执行),这时,等价于下面这条语句:

 1 SELECT IFNULL(id,0) from project_menu where code = NULL 

这就不是这个当id为空时,用0替换id返回这个概念了,因为当语句本身就是null时,语句中的函数就不会起作用

 

SELECT DISTINCT 
    新增 abilityType,
    CASE
      WHEN (cda.`order_from` = 0) 
      THEN "A" 
      WHEN (cda.`order_from` = 1) 
      THEN "B" ELSE "其它" 
    END AS orderFromFROM
    `comp_ability_apply` caa 
    LEFT JOIN `comp_demand_apply` cda 
      ON cda.id = caa.`apply_id` 
    LEFT JOIN `comp_oparty` co 
      ON co.`app_id` = cda.`app_id` 
    LEFT JOIN comp_ability_ext_from_shop ca 
      ON ca.`ability_name` = caa.`ability_name` 
      AND ca.`ability_version` = caa.`version` 
  WHERE caa.`status` = 0 
  AND IFNULL(ca.is_on_sale,1) = 1

 

MySQL 左连接时,查询条件查询某个字段为空或者为特定值解决方案

标签:where   code   art   type   ase   查询条件   lse   数据   apply   

原文地址:https://www.cnblogs.com/lidedong/p/12857075.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!