云计算、AI、云原生、大数据等一站式技术学习平台

网站首页 > 教程文章 正文

mysql中的if条件语句用法(mysql 中if)

jxf315 2025-01-26 22:55:28 教程文章 47 ℃

IF(expr1,v1,v2)

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

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'

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

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

mysql> SELECT IF(0.1,1,0);

        -> 0

mysql> SELECT IF(0.1<>0,1,0);

        -> 1

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

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

  1. v1 或v2 返回值为一个字符串。---返回值是字符串
  2. v1 或v2返回值为一个浮点值。---返回值是浮点值
  3. v1 或v2返回值为一个整数。 ---返回值是整数
  4. 假如v1 或v2都是字符串,且其中任何一个字符串区分大小写,则返回结果是区分大小写。

IFNULL(expr1,expr2)

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

mysql> SELECT IFNULL(2,3);

        -> 2

CASE expr WHEN v1 THEN v2 [WHEN vr1 THEN vr2 ] ELSE vs1 END

CASE  <表达式>
   WHEN <值1> THEN <操作>
   WHEN <值2> THEN <操作>
   ...
   ELSE <操作>
END CASE;
mysql> SELECT CASE WEEKDAY(NOW()) WHEN 0 THEN '星期一' WHEN 1 THEN '星期二' WHEN
2 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)
最近发表
标签列表