MySQL使用IF函数动态执行where条件的方法
作者:不忘初心,砥砺前行 发布时间:2024-01-25 02:46:34
标签:MySQL,where条件,IF,函数
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)
List<TBook> queryByReadStatus(@Param("readStatus") String readStatus);
这样可以通过传入readStatus的值来控制是否执行read_status条件,当传值为-1时,不执行read_status = -1 条件,而是执行 true,相当于忽略了read_status条件,达到查询全部状态的book目的。
来源:https://www.cnblogs.com/codecat/p/12103250.html
0
投稿
猜你喜欢
- 示例数据: zs,3li,5ww,10cc,4xm,2xh,1pp,6qq,7ff,11dd,8kk,12mm,9处理后效果:脚本代码如下:
- 本文为大家分享了python字典DICT类型合并的方法,供大家参考,具体内容如下我要的字典的键值有些是数据库中表的字段名, 但是有些却不是,
- 本文实例讲述了基于python编写的微博应用,分享给大家供大家参考。具体如下:在编写自己的微博应用之前,先要到weibo开放平台申请应用的公
- 要判断自定义对象的类型,用__class__方法,或者用isinstance(object, class-or-type-or-tuple)
- 原文地址:30 Days of Mootools 1.2 Tutorials - Day 4 - Functions函数和MooTools
- CAS单点登录主要是为了解决主系统和子系统的统一登录问题,能够做到任意一个子系统登录成功后,再登录其他子系统后不再需要认证,让用户不用重复地
- 最近开发了一个网站,大量采用了html5和css3,希望用户都以webkit内核打开页面,但是测试却发现360的以ie内核打开为推荐模式,不
- 今天模拟定义map函数.写着写着就发现Python可变长度参数的机制真是灵活而强大.假设有一个元组t,包含n个成员:t=(arg1,...,
- 迭代器跟生成器,与上篇文章讲的装饰器一样,都是属于我的一个老大难问题。通常就是遇到的时候就去搜一下,结果在一大坨各种介绍博客中看了看,回头又
- 简介:这里是利用了selenium+图片识别验证,来实现12306的模拟登录,中间也参考了好几个项目,实现了这个小demo,中间也遇到了很多
- 定义:Dim MyArray() Redim MyArray(5)Session("StoredAr
- 语音识别是人工智能中的一个领域,它允许计算机理解人类语音并将其转换为文本。该技术用于 Alexa 和各种聊天机器人应用程序等设备。而我们最常
- 第一个版本在这个版本中,首先创建了 RouterConfig 对象,其构造方法创建了 tornado.web.Application() 并
- 命令行执行Python脚本的传参应用场景在对ABAQUS进行二次开发时,需要将核心脚本的外部数据传递到脚本内部并执行核心脚本在运行时,可以调
- 偶然从pytorch讨论论坛中看到的一个问题,KL divergence different results from tf,kl dive
- 本文详细讲述了python的内嵌time模块的用法。分享给大家供大家参考之用。具体分析如下: 一、简介time模块提供各种操作时
- 1.字符串大小写转换string.title() #将字符串中所有单词的首字母以大写形式显示string.upper() #将字符串中所有字
- 完整项目地址下载:https://github.com/rainbow-tan/rainbow/tree/master/%E8%A3%81%
- Capstone是Kali Linux自带的一款轻量级反汇编引擎。它可以支持多种硬件构架,如ARM、ARM64、MIPS、X86。该框架使用
- 前言不管是做开发还是做过网站的朋友们,应该对于User Agent一点都不陌生,User Agent 中文名为用户代理,简称 UA,它是一个