6.3.2 合并字符串 CONCAT(S1,S2,S3) CONCAT_WS(X,S1,S2,S3) WS的全称:With Separator,即带分隔符
CONCAT常用于连接字符串。如果有NULL,则返回NULL。
CONCAT_WS(X,S1,S2,S3),返回效果如 S1XS2XS3 。如果S1、S2、S3有NULL,那么会自动被忽略。
SELECT
CONCAT('%','mysql','%'),
CONCAT_WS('-','1996','05','19'),
CONCAT('%',NULL,'%'),
CONCAT_WS('-','1996','05',NULL,'19')
;
6.4 返回当前时间
NOW() 与 SYSDATE() 效果一样。
CURRENT_TIME 、 CURRENT_DATE
SELECT
CURRENT_DATE ,
CURRENT_TIME,
NOW(),
SYSDATE()
;
6.5.1 条件函数
IF(expr,V1,V2) 功能与Java的三目运算符一样,如果expr为真,返回V1,否则为V2.
IFNULL(V1,V2); 如果V1是NULL,返回V2。V1不是NULL,返回V1。
SELECT
IF(1>0,2,3),
IF(1<0,2,3),
IFNULL(NULL,4),
IFNULL(5,6)
;
6.5.3 条件表达式
看清楚了,没有逗号。若expr的值是v1,则结果为 r1 。语法格式为 :
CASE expr
WHEN v1 THEN r1
WHEN v2 THEN r2
...
ELSE rn
END
SELECT
CASE 1>0
WHEN 1 THEN 'true'
WHEN 0 THEN 'FALSE'
ELSE 'MORE'
END AS result;
CASE的另外一种变法。
CASE
WHEN v1 THEN r1
WHEN v2 THEN r2
...
ELSE rn
END
如果没有表达式,那么将会顺序执行下面的WHEN语句,直到第一个为条件满足,返回后面的值。若没有符合的,则返回ELSE后面的值。
SELECT
CASE
WHEN 1>2 THEN 'A'
WHEN 1<2 THEN 'B'
WHEN 1<3 THEN 'C'
ELSE 'D'
END AS RESULT
;
阅读更多