MySQL中if case条件语句基本用法

IF表达式

IF(expr1,expr2,expr3)

如果 expr1 是TRUE (expr1 <> 0 and expr1 <> NULL),则 IF()的返回值为expr2; 否则返回值则为 expr3。IF() 的返回值为数字值或字符串值,具体情况视其所在语境而定

举例如下:

 代码如下 复制代码

SELECT IF(score>=60,’pass’,’fail’) FROM score;

mysql> SELECT IF(1>2,2,3);
-> 3
mysql> SELECT IF(1<2,'yes ','no');
-> 'yes'
mysql> SELECT IF(STRCMP('test','test1'),'no','yes');
-> 'no'

如果是大于2种结果,那么就要使用CASE了,语法是:

CASE 字段名称 WHEN 值1 THEN 结果1 WHEN 值2 THEN 结果2 ELSE 其他结果 END
举例如下:

 代码如下 复制代码

SELECT CASE value
WHEN 1 THEN ‘A’
WHEN 2 THEN ‘B’
WHEN 3 THEN ‘C’
ELSE ‘D’
END AS text
FROM test;

if case存储过程

 代码如下 复制代码

错误写法

create procedure test(in a int)
if a > 1 then
  select 1;
elseif a>2 then
  select 2;
else
 
end if;

正确定写法

create procedure test(in a int)
if a > 1 then
  select 1;
elseif a>2 then
  select 2;
else
-- do nothing --
set @tmp=1;
end if;

例子

 代码如下 复制代码

DROP PROCEDURE IF EXISTS text;

create procedure text(
out rtn int 
)
begin

 declare LoginId INT default 0;

 set rtn=1; 

 IF LoginId = 3
 THEN
  set rtn=2;
 ELSEIF LoginId = 0
 THEN
  set rtn=3;
 ELSE
  set rtn=4;
 END IF;

end

时间: 2024-11-05 17:24:45

MySQL中if case条件语句基本用法的相关文章

MySQL中使用case when 语句实现多条件查询的方法_Mysql

举例如下: 数据表为DemoTable,字段有id, condition1,condition2,condition3,condition4,condition5 要求是查询DemoTable中,condition1,condition2,condition3,condition4,condition5五个字段中符合任意两个或两个以上的条件的内容. 可使用case when来实现这个条件,需要嵌套子查询语句 sql语句代码示例如下: 复制代码 代码如下: SELECT * FROM DemoTa

oracle/plsql case条件语句的用法

语句语法  代码如下 复制代码 CASE  [ expression ]   WHEN condition_1 THEN result_1   WHEN condition_2 THEN result_2   ...   WHEN condition_n THEN result_n   ELSE result END expression 可选的.它的价值,你比较的条件清单. (即:condition_1,condition_2,... condition_n) condition_1到cond

mysql中模糊查询的四种用法介绍_Mysql

下面介绍mysql中模糊查询的四种用法: 1,%:表示任意0个或多个字符.可匹配任意类型和长度的字符,有些情况下若是中文,请使用两个百分号(%%)表示. 比如 SELECT * FROM [user] WHERE u_name LIKE '%三%' 将会把u_name为"张三","张猫三"."三脚猫","唐三藏"等等有"三"的记录全找出来. 另外,如果需要找出u_name中既有"三"又有

mysql中模糊查询的四种用法介绍

下面介绍mysql中模糊查询的四种用法: 1,%:表示任意0个或多个字符.可匹配任意类型和长度的字符,有些情况下若是中文,请使用两个百分号(%%)表示. 比如 SELECT * FROM [user] WHERE u_name LIKE '%三%' 将会把u_name为"张三","张猫三"."三脚猫","唐三藏"等等有"三"的记录全找出来. 另外,如果需要找出u_name中既有"三"又有

mysql中实现WITH AS语句

问题描述 mysql中实现WITH AS语句 WITH n(parentId) AS (SELECT menuId FROM TSYS_MENU WHERE menuid in #{item} UNION ALL SELECT parentId FROM TSYS_MENU WHERE menuid in #{item} UNION ALL SELECT nplus.parentId FROM TSYS_MENU as nplus n WHERE n.parentId = nplus.menui

mysql 单引号 双引号-mysql 中,执行insert语句,单引号双引号区别

问题描述 mysql 中,执行insert语句,单引号双引号区别 建表的时候或者用Insert向表中插入记录时,会用到单引号和双引号.有时候感觉二者都行,但请问下这两者有什么区别.什么时候用单,什么时候用双?

Linux中sh脚本case条件语句用法

case语句适用于需要进行多重分支的应用情况.         case分支语句的格式如下:             case 变量名 in                 模式1)             命令序列1             ;;                 模式2)             命令序列2          ;;                 *)             默认执行的命令序列             esac         case语句结构

MySQL中Update与Insert语句用法详解

MySQL 更新数据 Update 语句 update 语句的定义: UPDATE语法可以用新值更新原有表行中的各列.让我们先来看一下update语句标准的定义,放在[]内的都是可以省略的:  代码如下 复制代码 UPDATE [LOW_PRIORITY] [IGNORE] tbl_name SET col_name1=expr1 [, col_name2=expr2 ...] [WHERE where_definition] [ORDER BY ...] [LIMIT row_count] s

MySQL中的事务和锁简单用法测试

一直以来,对于MySQL中的事务和锁的内容是浅尝辄止,没有花时间了解过,在一次看同事排查的故障中有个问题引起了我的兴趣,虽然过去了很久,但是现在简单总结一下还是有一些收获. 首先我们初始化数据,事务的隔离级别还是MySQL默认的RR,存储引擎为InnoDB > create table test(id int,name varchar(30)); > insert into test values(1,'aa'); 开启一个会话,开启事务.会话1: [test]>start transa