mysql中写判断语句的方法总结

mysql中写判断语句的方法:

方法一.CASE函数

case函数语法:

CASE condition
WHEN value1 THEN returnvalue1
WHEN value2 THEN returnvalue2
WHEN value3 THEN returnvalue3
……
ELSE defaultvalue
END

举例:

SELECT username,(CASE sex WHEN 1 THEN '男' WHEN 2 THEN '女' ELSE '未知' END) as sex FROM user;

查询结果如图:

方法二.IF()函数

CASE函数可以实现非常复杂的逻辑判断,实现满足条件就A,否则就B这样简单的判断逻辑的话,CASE函数就显得臃肿。MYSQL提供了IF()函数用于简化这种逻辑判断,其语法格式如下:IF(condition,A,B)

如果condition条件为真,就返回A,否则返回B。所以如果有多个条件,就无法使用IF函数。IF()返回一个数字或字符串。

select username,if(sex=1,'男','女') as sex from user;

查询结果如图:

可以看到,username为zhangsan的显示性别为女,因为我们条件是sex=1为男,其它都会女。所以IF函数用于只有两种情况的判断。mysql还有一个IFNULL(value1,value2)函数,这个函数一般用来替换NULL值的,我们知道NULL值是不能参与数值运算的。

方法三.字符串操作ELT()

语法:

ELT(N,str1,str2,str3,...)

如果 N = 1,返回 str1,如果N = 2,返回 str2,等等。如果 N 小于 1 或大于参数的数量,返回 NULL。

SELECT username,ELT(sex,'男','女','未知') as sex FROM user

查询结果如图:

内容扩展:

mysql条件判断语句

业务场景中,比如一个用户有几种状态(1:有效、2:无效、3:其他),这时候查询就需要用到条件语句。

语法:

CASE 字段
 WHEN `条件1` THEN `结果1`
 WHEN `条件2` THEN `结果2`
 WHEN ...
 ELSE `其他结果`
END

示例:

SELECT id,name,
(CASE status
	WHEN 1 THEN '有效'
	WHEN 2 THEN '无效'
ELSE '其他'
END) AS status
FROM user

到此这篇关于mysql中写判断语句的方法总结的文章就介绍到这了,更多相关mysql中如何写判断语句内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • mysql中写判断语句的方法总结

    mysql中写判断语句的方法: 方法一.CASE函数 case函数语法: CASE condition WHEN value1 THEN returnvalue1 WHEN value2 THEN returnvalue2 WHEN value3 THEN returnvalue3 -- ELSE defaultvalue END 举例: SELECT username,(CASE sex WHEN 1 THEN '男' WHEN 2 THEN '女' ELSE '未知' END) as sex

  • MySql中使用正则表达式查询的方法

    正则表达式常用来检索和替换那些符合魔种模式的文本.例如从一个文本文件中提取电话号码,查找一篇文章中重复的单词或者替换用户输入的某些敏感词汇等.Mysql 使用 REGEXP 关键字指定正则表达式的字符匹配模式. 1. 字符 '^' 查询以特定字符或字符串开头的记录 SELECT * FROM user WHERE email REGEXP '^a' 字符 '^' 匹配以特定字符或字符串开头的记录,以上语句查询邮箱以 a 开头的记录 2. 字符 ' 查询以特定字符或字符串结尾的记录 SELECT

  • Mysql优化order by语句的方法详解

    本篇文章我们将了解ORDER BY语句的优化,在此之前,你需要对索引有基本的了解,不了解的老少爷们可以先看一下我之前写过的索引相关文章.现在让我们开始吧. MySQL中的两种排序方式 1.通过有序索引顺序扫描直接返回有序数据 因为索引的结构是B+树,索引中的数据是按照一定顺序进行排列的,所以在排序查询中如果能利用索引,就能避免额外的排序操作.EXPLAIN分析查询时,Extra显示为Using index. 2.Filesort排序,对返回的数据进行排序 所有不是通过索引直接返回排序结果的操作都

  • 详解Mysql中日期比较大小的方法

    假如有个表product有个字段add_time,它的数据类型为datetime,有人可能会这样写sql: 代码如下 select * from product where add_time = '2013-01-12' 对于这种语句,如果你存储的格式是YY-mm-dd是这样的,那么OK,如果你存储的格式是:2013-01-12 23:23:56这种格式你就悲剧了,这是你就可以使用DATE()函数用来返回日期的部分,所以这条sql应该如下处理: 代码如下 select * from produc

  • Python 中的判断语句,循环语句,函数

    目录 1. 判断语句 1.1 布尔类型和比较运算符 1.1.1 布尔类型 1.1.2 比较运算符 1.2 if 语句 1.2.1 if 语句基本格式 1.2.2 if else 语句 1.2.3 if elif else 语句 1.2.4 判断语句的嵌套 2. 循环语句 2.1 while 循环 2.1.1 while 循环基础语法 2.1.2 while 循环嵌套使用 2.2 for 循环 2.2.1 for 循环基础语法 2.2.2 range 语句 2.2.3 变量作用域 2.2.4 fo

  • 浅谈MySQL中group_concat()函数的排序方法

    group_concat()函数的参数是可以直接使用order by排序的.666.. 下面通过例子来说明,首先看下面的t1表. 比如,我们要查看每个人的多个分数,将该人对应的多个分数显示在一起,分数要从高到底排序. 可以这样写: SELECT username,GROUP_CONCAT(score ORDER BY score DESC) AS myScore FROM t1 GROUP BY username; 效果如下: 以上这篇浅谈MySQL中group_concat()函数的排序方法就

  • MySQL中create table语句的基本语法是

    MySQL中create table语句的基本语法是:  Create [TEMPORARY] TABLE [IF NOT EXISTS] tbl_name [(create_definition,...)]  [table_options] [select_statement]  TEMPORARY:该关键字表示用create table新建的表为临时表,此表在当前会话结束后将自动消失.临时表主要被应用于存储过程中,对于目前尚不支持存储过程的MySQL,该关键字一般不用.  IF NOT EX

  • MySQL中使用游标触发器的方法

    游标 select检索返回的一组行称为结果集,结果集里的行都是根据你输入的sql语句检索出来的,如果不使用游标,你将没有办法得到第一行,前十行或者是下一行 下面是一些常见的游标现象和特性 能够标记游标为只读,是数据能够读取,但不能被更新或者删除 能控制可以执行的定向操作(向前,向后,第一,最后.绝对位置和相对位置等) 能标记某些行为可编辑的,而另一些行为不可编辑的 能规定范围,使游标对创建它的特定请求或者是所有请求可访问 Cursor declarations must appear befor

  • Python Scala中使用def语句定义方法的详细过程

    Scala和Java一样也有方法和函数.Scala的方法是类的一部分,而函数是一个对象可以赋值给一个变量.换句话来说,在类中定义的函数即是方法.Scala中可以使用df语句和val语句定义函数,而定义方法只能使用def语句.下面来讲解Scala的方法. Scala方法的定义格式如下: 从上面的代码可以看出,Scala的方法是由多个部分组成的,具体如下. def functionName([参数列表]):[return type]={ function body return [expr] } ·

  • MySQL中使用SQL语句对字段进行重命名

    MySQL中,如何使用SQL语句来对表中某一个字段进行重命名呢?我们将使用alter table 这一SQL语句. 重命名字段的语法为:alter table <表名> change <字段名> <字段新名称> <字段的类型>. 现在我们来尝试把test表中的t_name字段重命名为t_name_new字段. 1.首先查看一下当前test表的结构 mysql> describe test; +------------+-------------+---

随机推荐