背景描述

我们平常在使用MySQL的时候,因为if只能判断两种状态,例如if(1>2,1,2)就是说,如果1大于2则返回1,否则返回1。但是我们的业务通常有好几种状态需要来判断,这时候if两种状态不能满足我们的需求, 因此我们需要使用if嵌套if语句来实现多状态的需求,表达式为IF(expr1,expr2,IF(expr1,expr2,IF(expr1,expr2,expr3)))

业务需求

我一个表中的字段有三个状态,0代表未完成,1代表已完成,null代表还没有做,因此我需要在sql中判断这个三个关系,我们java中有if()else if()…else()语句来写多重判断,但是MySQL中只有一个if或者ifnull,显然不能满足我们实际的需求,因此我们就想着,能把if多重嵌套就好了,这样的话就会和java中的if(){}else if(){}…else{}一样了。

sql实现

select if(ct.check_result = 0, '不合格',if(ct.check_result is null, '未检测', if(ct.check_result = 1, '合格', '未知'))) as checkResult,if(tl.revert_statue = 0, '未借出', if(tl.revert_statue is null, '目前没有借用',if(tl.revert_statue = 1, '已还', '未知')))   as lendStstue,if(tl.lend_statue = 0, '未借出', if(tl.lend_statue is null, '目前没有借用',if(tl.lend_statue = 1, '已借出', '未知')))   as lendStstue,ct.first_check_time
from lhm_check_tool_b ctleft join lhm_check_tool_lend_b tl on ct.id = tl.check_tool_id
where ct.id=1

总结

我们再平常的sql语句书写时,要结合我们学过的其他语言进行对比,然后利用其它语言的用法来反馈到我们的sql语言上,利用他们的用法来给我们做启发,因而我们就能根据sql语言的特性进行扩展,然后写出自己想要的sql语句来!

mysql中if多重判断使用相关推荐

  1. .net一个函数要用另一个函数的值_【195期】MySQL中的条件判断函数 CASE WHEN、IF、IFNULL你会用吗?...

    点击上方"Java面试题精选",关注公众号 面试刷图,查缺补漏 >>号外:往期面试题,10篇为一个单位归置到本公众号菜单栏->面试题,有需要的欢迎翻阅 阶段汇总集 ...

  2. mysql中where条件判断语句_MySQL Where 条件语句介绍和运算符小结

    WHERE 条件 有时候操作数据库时,只操作一些有条件限制的数据,这时可以在SQL语句中添加WHERE子句来规定数据操作的条件. 语法: SELECT column,- FROM tb_name WH ...

  3. MySQL中的条件判断函数 CASE WHEN、IF、IFNULL你会用吗?

    前言 参考文章:https://mp.weixin.qq.com/s?__biz=MzIyNDU2ODA4OQ==&mid=2247486529&idx=1&sn=6d5cd7 ...

  4. MYSQL中查询怎么判断一个字段包含英文?

    SELECT * from 表名 where `字段名` REGEXP '[a-z]+' 查询出的就是这个字段里包含字母的数据了

  5. mysql加上判断_在mysql中where加if判断

    在mysql中where中多重条件if判断,项目需求如下: 好友关系中本身具有A,B,C三种角色,好友动态分为1,2,3,4,5种类型.A是必须具有的角色,如果具有A角色可查好友动态类型1,3,4 的 ...

  6. ThinkPHP 3.2.2 在 volist 多重循环嵌套中使用 if 判断标签

    今天在 ThinkPHP 3.2.2 的试图模板中使用多重循环,用来把相应类别下对应的文章都依次循环出来,但是无论如何只能循环出类别,类别下的文章无法循环出,( 错误 ) 代码如下: <voli ...

  7. mysql中判断字段为空

    mysql中判断字段为null或者不为null 在mysql中,查询某字段为空时,切记不可用 = null, 而是 is null,不为空则是 is not null select nulcolumn ...

  8. MySql中怎样使用case-when实现判断查询结果返回

    场景 在对Mysql中的数据查询时,某些字段比如是否怎样样,在数据库中存储的是0和1. 如果想在查询时根据值是0和1进而返回是和否怎样编写查询语句. 注: 博客: https://blog.csdn. ...

  9. mysql 当前用户连接数_实战:判断mysql中当前用户的连接数-分组淘选

    实战:判断mysql中当前用户的连接数-分组筛选 #connets.sh #!/bin/sh #ocpyang@126.com #根据输入参数u或d来显示出对应的用户名或数据库名中用户的连接数. #也 ...

  10. java怎么判断mysql中是否存在我们查找的索引_10张图告诉你,MySQL 是如何查找数据的?...

    在我们日常生活中经常会涉及到查找某个东西的场景,就比如说在一个学校里吧,我们想找出个子"最高的10个"同学,或者想查找姓名是"张三"的同学,又或者是查找学号是& ...

最新文章

  1. android调试推荐使用BlueStacks模拟器调试Android应用
  2. salt盐度与用户密码加密机制
  3. Flask项目--注册
  4. PHP学习笔记--函数
  5. 基于单片机烟雾温湿度甲醛监测设计
  6. 用一套鼠标键盘控制两台或多台电脑
  7. 有氧运动存在哪些误区
  8. 字节跳动社招校招实习内推提前批
  9. 计算机进入低能耗休眠状态,BIOS电源管理ACPI的D3cold-D3hot
  10. stm32 c语言运行速度,stm32F7,cache,tcm及运行速度问题
  11. 高通Android display分析【转】
  12. Jenkins 汉化
  13. Unity3D中UGUI的RectTransform对齐方式详解
  14. 《Python全栈系列教程》目录
  15. java mysql点赞功能_用Java做一个类似于微博QQ空间点赞的功能-Fun言
  16. 基于mahout的动漫推荐系统
  17. 什么云服务器比较好?大家用过哪家?
  18. Unix/Linux fork后传-clone
  19. 西数首款PCIe M.2黑盘上市:最大连续读写速度2050MB/s
  20. M1 Mac使用PD虚拟机配合VSC代替Keil烧录MM32单片机

热门文章

  1. Typora 如何自动生成标题序号
  2. php远程登录linux,如何远程连接linux桌面
  3. 精益创业 (创业理念)
  4. 渗透测试常见弱口令汇总
  5. 单细胞文章专列——细胞图谱
  6. 关于神经网络中隐藏层和神经元的深入理解
  7. C# TCP/IP通讯协议的整理(二)附带——与欧姆龙PLC通讯
  8. 2019 强网杯 babybank
  9. 计算机的方差符号怎么输入,【2人回答】标准差的符号在电脑上怎么输入?-3D溜溜网...
  10. 问题解决_系统识别不了内存