您现在的位置是:网站首页> 编程资料编程资料
MySQL使用IF函数动态执行where条件的方法_Mysql_
2023-05-26
474人已围观
简介 MySQL使用IF函数动态执行where条件的方法_Mysql_
IF函数
IF(expression ,expr_true, expr_false);
MySQL的IF()函数,接受三个表达式,如果第一个表达式为true,而不是零且不为NULL,它将返回第二个表达式。否则,它返回第三个表达式。根据使用它的上下文,它返回数字或字符串值。
IF函数在WHERE条件中的使用
先来看一个SQL:
select book_name,read_status from t_book;
结果如下:

read_status字段意思是阅读状态,有以下几个值: 0(未阅读),1(阅读中),2(已阅读)。
下面使用IF函数来查询:
# 查询未阅读的book select book_name,read_status from t_book where IF(-1 = 0, true, read_status = 0);

# 查询阅读中的book select book_name,read_status from t_book where IF(-1 = 1, true, read_status = 1);

# 查询已阅读的book select book_name,read_status from t_book where IF(-1 = 2, true, read_status = 2);

# 查询全部的book select book_name,read_status from t_book where IF(-1 = -1, true, read_status = -1);

JAVA使用
/** * 根据阅读状态来查询book * @param readStatus * @return */ @Query(value = "select book_name,read_status from t_book where IF(-1 = :readStatus, true, read_status = readStatus)", nativeQuery = true) ListqueryByReadStatus(@Param("readStatus") String readStatus);
这样可以通过传入readStatus的值来控制是否执行read_status条件,当传值为-1时,不执行read_status = -1 条件,而是执行 true,相当于忽略了read_status条件,达到查询全部状态的book目的。
到此这篇关于MySQL使用IF函数来动态执行where条件的文章就介绍到这了,更多相关MySQL动态执行where条件内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!
您可能感兴趣的文章:
相关内容
- 解读mysql中的null问题_Mysql_
- mysql count 为null时,显示0的问题_Mysql_
- MySQL字符之char、varchar类型简析_Mysql_
- mysql 实现迁移数据库到另一台服务器_Mysql_
- 在linux服务器上配置mysql并开放3306端口的操作步骤_Mysql_
- Linux系统彻底卸载MySQL数据库详解_Mysql_
- SQL Group By分组后如何选取每组最新的一条数据_Mysql_
- 使用LEFT JOIN 统计左右存在的数据问题_Mysql_
- mysql中的mvcc 原理详解_Mysql_
- MySQL 8.0新特性之集合操作符INTERSECT和EXCEPT_Mysql_
