mysql when case 条件判断语名用法

语法

 代码如下 复制代码

CASE value WHEN [compare-value] THEN result [WHEN [compare-value] THEN result ...] [ELSE result] END CASE WHEN [condition] THEN result [WHEN [condition] THEN result ...] [ELSE result] END

实例

 代码如下 复制代码

SELECT CASE WHEN 10*2=30 THEN '30 correct'
WHEN 10*2=40 THEN '40 correct'
ELSE 'Should be 10*2=20'
END;

复杂点

 

 代码如下 复制代码
SELECT CASE 10*2
WHEN 20 THEN '20 correct'
WHEN 30 THEN '30 correct'
WHEN 40 THEN '40 correct'
END;

实例

 

 代码如下 复制代码
/*
mysql> SELECT Name, RatingID AS Rating,
-> CASE RatingID
-> WHEN 'R' THEN 'Under 17 requires an adult.'
-> WHEN 'X' THEN 'No one 17 and under.'
-> WHEN 'NR' THEN 'Use discretion when renting.'
-> ELSE 'OK to rent to minors.'
-> END AS Policy
-> FROM DVDs
-> ORDER BY Name;
+-----------+--------+------------------------------+
| Name | Rating | Policy |
+-----------+--------+------------------------------+
| Africa | PG | OK to rent to minors. |
| Amadeus | PG | OK to rent to minors. |
| Christmas | NR | Use discretion when renting. |
| Doc | G | OK to rent to minors. |
| Falcon | NR | Use discretion when renting. |
| Mash | R | Under 17 requires an adult. |
| Show | NR | Use discretion when renting. |
| View | NR | Use discretion when renting. |
+-----------+--------+------------------------------+
8 rows in set (0.01 sec)
*/
Drop table DVDs;
CREATE TABLE DVDs (
ID SMALLINT NOT NULL AUTO_INCREMENT PRIMARY KEY,
Name VARCHAR(60) NOT NULL,
NumDisks TINYINT NOT NULL DEFAULT 1,
RatingID VARCHAR(4) NOT NULL,
StatID CHAR(3) NOT NULL
)
ENGINE=INNODB;
INSERT INTO DVDs (Name, NumDisks, RatingID, StatID)
VALUES ('Christmas', 1, 'NR', 's1'),
('Doc', 1, 'G', 's2'),
('Africa', 1, 'PG', 's1'),
('Falcon', 1, 'NR', 's2'),
('Amadeus', 1, 'PG', 's2'),
('Show', 2, 'NR', 's2'),
('View', 1, 'NR', 's1'),
('Mash', 2, 'R', 's2');
SELECT Name, RatingID AS Rating,
CASE RatingID
WHEN 'R' THEN 'Under 17 requires an adult.'
WHEN 'X' THEN 'No one 17 and under.'
WHEN 'NR' THEN 'Use discretion when renting.'
ELSE 'OK to rent to minors.'
END AS Policy
FROM DVDs
ORDER BY Name;
时间: 2024-10-21 07:50:59

mysql when case 条件判断语名用法的相关文章

mysql中case 和if的用法

问题描述 mysql中case 和if的用法 这是我想要写的,但是case when里面是不是只能写一个条件?我想要两个条件去判断,返回一列.用if怎么写呢? 解决方案 不是,你这样写就是可以的. 解决方案二: 可以用when and,最好用括号括起来,然后就是检查你的判断条件是否正确 SELECT table1.id, table1.name, CASE WHEN (table1.event = 'r' AND table1.name='Jones') THEN 'very high' WHE

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

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

mysql多个条件分列显示问题

问题描述 mysql多个条件分列显示问题 SELECT dir3.url from dir3 LEFT JOIN dir4 on dir4.url=dir3.url where dir4.id is null or dir3.md5<>dir4.md5 and dir3.inputtime=1453086000 现在这两个都合并显示在一列,求大神帮我修改一下,分成两列显示,能否做到? 解决方案 这两个指哪两个,怎么显示的一列,要显示成什么样的2列. 解决方案二: SELECT dir3.url

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

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

大小写-EF和mysql做关系映射,表名全部小写了,怎么解决?

问题描述 EF和mysql做关系映射,表名全部小写了,怎么解决? 我的项目已经用EF映射过一次mysql 了,表名和数据库名称大小写是一致的. 然后我现在"从数据库更新模型",发现映射过来的表名全部小写了.不知道怎么回事? 求大神赐教!

mysql 在一定条件下 一个家庭id一样 的语句怎么写

问题描述 mysql 在一定条件下 一个家庭id一样 的语句怎么写 如 id 关系 1 户主 1 女儿 1 儿子 2 户主 2 老婆 3 户主 3 儿子 怎么在知道关系的情况下 生成这样的id???怎么写.? 解决方案 关键是什么条件,你可以加上familyid,关联给family表,而family表中,一个家庭一个id 解决方案二: 不是知道关系么,先根据关系查出家庭id,在将id赋到你的关系字段中的id中 解决方案三: 家庭id 关系 1 户主 1 女儿 1 儿子 4 户主 我是要得到这样的

mysql数据同步:不同数据库名,不同表名,字段名也不相同,怎么同步数据呢?

问题描述 mysql数据同步:不同数据库名,不同表名,字段名也不相同,怎么同步数据呢? 工作当中遇到了一个问题,本人刚入行菜鸟不知道怎么解决,想问问大虾: A服务器上有数据库db_a,库中有表tbl_a,表中有字段col_a, B服务器上有数据库db_b,库中有表tbl_b,表中有字段col_b, AB数据库名不同,表名不同,字段名也不同. 现在需要把A服务器上tbl_a表中col_a字段的数据 同步到 B服务器上tbl_b表中col_b字段. (也不知道我的描述各位看官能看懂不) 该怎么做呢?

数据库查询判断-vb2012 查询mysql数据库 where 条件语句有多个变量该怎么写?

问题描述 vb2012 查询mysql数据库 where 条件语句有多个变量该怎么写? 单个变量时 ("select * from biao1 where id>=" & i,conn) 没有问题 我想id取值在变量i和j之间,另外name=lk,求大神赐教! 解决方案 你会一个条件,多个条件,自己拼接字符串,总该会吧 解决方案二: 你可以使用string把字符串拼接起来. 或者用sprintf格式化写入一个字符串 #include<iostream> #in

mysql中replace、regexp正则表达式替换用法

mysql字段值替换具体做法如下:  代码如下 复制代码 update `table_hospital` set service=replace(service,"<a%</font></a>",'') <br type="_moz"> 可以限制ID,范围,具体内容自己发挥想象! mysql数据库中replace.regexp的用法,主要是通过sql语句实现数据的替换. mysql replace用法 1.replace i