mysql的if语句怎么写

发布时间: 2023-11-21 11:56 阅读: 文章来源:1MUMB2533PS
IF(expr1,v1,v2)

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

mysql> select IF(1>2,2,3);-> 3mysql> select IF(1 ‘yes‘mysql> select IF(STRCMP(‘test‘,‘test1‘),‘no‘,‘yes‘);-> ‘no‘

如果v1 或v2中只有一个明确是 NULL,则IF() 函数的结果类型 为非NULL表达式的结果类型。

expr1 作为一个整数值进行计算,就是说,假如你正在验证浮点值或字符串值,那么应该使用比较运算进行检验。

mysql> select IF(0.1,1,0);-> 0mysql> select IF(0.10,1,0);-> 1

在所示的第一个例子中,IF(0.1)的返回值为0,原因是 0.1 被转化为整数值,从而引起一个对 IF(0)的检验。这或许不是你想要的情况。在第二个例子中,比较检验了原始浮点值,目的是为了了解是否其为非零值。比较结果使用整数。

IF() (这一点在其被储存到临时表时很重要 ) 的默认返回值类型按照以下方式计算:

v1 或v2 返回值为一个字符串。---返回值是字符串v1 或v2返回值为一个浮点值。---返回值是浮点值v1 或v2返回值为一个整数。 ---返回值是整数假如v1 或v2都是字符串,且其中任何一个字符串区分大小写,则返回结果是区分大小写。IFNULL(expr1,expr2)

如果expr1不是NULL,IFNULL()返回expr1,否则它返回expr2。IFNULL()返回一个数字或字符串值;

mysql> select IFNULL(2,3);-> 2CASE expr WHEN v1 THEN v2 [WHEN vr1 THEN vr2 ] ELSE vs1 ENDCASEWHEN THEN WHEN THEN ...ELSE END CASE;mysql> select CASE WEEKDAY(NOW()) WHEN 0 THEN ‘星期一‘ WHEN 1 THEN ‘星期二‘ WHEN2 THEN ‘星期三‘ WHEN 3 THEN ‘星期四‘ WHEN 4 THEN ‘星期五‘ WHEN 5 THEN ‘星期六‘ELSE ‘星期天‘ END AS COLUMN1,NOW(),WEEKDAY(NOW()),DAYNAME(NOW());+---------+---------------------+----------------+----------------+| COLUMN1 | NOW()| WEEKDAY(NOW()) | DAYNAME(NOW()) |+---------+---------------------+----------------+----------------+| 星期四| 2019-02-28 13:45:43 |3 | Thursday|+---------+---------------------+----------------+----------------+1 row in set, 7 warnings (0.00 sec)
•••展开全文