mysql查询语句where后面加if判断
格式:IF(<condition>,<value if true>,<value if false>)
释义:如果condition为true,则执行前面的条件;condition为false,则执行后面的条件
示例:
查找名字为张三并且是地区是湖南,和名字不是张三的所有用户:
SELECT * FROM USER WHERE IF( NAME ='张三',address LIKE '%湖南%',1=1 )
简单的写法:
SELECT * FROM USER WHERE 1 = 1 AND NAME != '张三' OR (NAME = '张三' AND address LIKE '%湖南%' )
也可以这么写:
SELECT * FROM USER WHERE 1 = 1 AND NAME != '张三' OR address LIKE '%湖南%'
项目代码:
查询s3为null的全部记录和s3不为null,而且p.display_code 在s3里面的记录
WHERE 1 = 1 AND s1 = '5' AND IF( s3 IS NULL,TRUE,FIND_IN_SET(p.display_code, s3))
mysql查询语句where后面加if判断
说明:WHERE IF(条件, true执行条件, false执行条件 )
SELECT * FROM book WHERE IF(price > 120, btypeid=10, btypeid=11);
以上sql查询语句,意思是查price字段大于120,当price大于120为真时,再找btypeid等于10的行记录,
当price大于120为假时,再找btypeid等于11的行记录。什么意思呢?咱们换句话说吧!
意思就是当price大于120为真时,执行语句为where price>120 and btypeid=10;
当price大于120为假时,执行语句为where price<120 and btypeid=11;准确来说应该是where price<=120 and btypeid=11;
其实说白了,SELECT * FROM book WHERE IF(price > 120, btypeid=10, btypeid=11);这条sql语句等价于如下sql语句
select * from book where price > 120 and btypeid =10 union select * from book where price < 120 and btypeid = 11;
准确的来说是select * from book where price > 120 and btypeid =10 union select * from book where price <=120 and btypeid = 11;
以下sql语句同理,只不过是多了一个limit 0,1;取前面1条记录。
SELECT * FROM book WHERE IF(price > 120, btypeid=10, btypeid=11) limit 0,1;
相关文章
- 数据库表设计时一对一关系存在的必要性 数据库一对一、一对多、多对多设计 面试逻辑题3.31 sql server 查询某个表被哪些存储过程调用 DataTable根据字段去重 .Net Core Cors中间件解析 分析MySQL中哪些情况下数据库索引会失效
- SpringBoot+MyBatis+MySQL读写分离
- MySQL查询某天的数据
- Mysql模糊查询Like传递参数的语句
- MySQL 日志相关配置
- Mysql查询时case when语句的使用
- 基于Java+Vue+MySQL实现(Web)电影院会员管理系统【100010345】
- MySQL 物理组成-一条更新语句是如何执行的
- mysql存储过程 OUT or INOUT argument 3 for routine
- 转 zabbix+percona监控MySQL之各个监控项 V2
- MySQL核心之双一原则
- sql:MySql create FUNCTION,VIEW,PROCEDURE
- MySQL 根据不同条件连接查询不同的表
- PHP MySQL连接并查询数据
- Amoeba for MySQL 非常好用的mysql集群软件
- MySql 数据库中查询日期函数的使用
- mysql根据查询结果,创建表
- 【MySQL】实验五 子查询
- 使用JDBC对数据库进行查询的前期准备工作,以及简单的JDBC访问MySQL数据库(Mac)
- mysql 将查询出来的某一字段组合成字符串
- nodejs MYSQL数据库执行多表查询
- Windows下命令行怎样登录MySQL
- mysql中根据json格式进行查询等操作
- 高性能 MySQL(九):通过重构查询语句,来解决慢查询
- MySQL 排序查询