MySQL 左连接时,查询条件查询某个字段为空或者为特定值解决方案
Posted 来陪朕侍寝
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MySQL 左连接时,查询条件查询某个字段为空或者为特定值解决方案相关的知识,希望对你有一定的参考价值。
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 左连接时,查询条件查询某个字段为空或者为特定值解决方案的主要内容,如果未能解决你的问题,请参考以下文章