跳到主要内容

高级函数

函数名描述示例
BIN(x)返回 x 的二进制编码SELECT BIN(28);
->11100
BINARY(s)将字符串 s 转换为二进制字符串SELECT BINARY('STONEDB');
-> STONEDB
CASE expression
WHEN condition1 THEN result1
WHEN condition2 THEN result2
...
WHEN conditionN THEN resultN
ELSE result
END
CASE 表示函数开始,END 表示函数结束。如果 condition1 成立,则返回 result1, 如果 condition2 成立,则返回 result2,当全部不成立则返回 result,而当有一个成立之后,后面的就不执行了SELECT CASE
WHEN 1>0
THEN '1 > 0'
WHEN 2>0
THEN '2 > 0'
ELSE '3 > 0'
END;
->1>0
CAST(x AS type)转换数据类型SELECT CAST('2022-06-11' AS DATE);
->2022-06-11
COALESCE(expr1, expr2, ...., expr_n)返回参数中的第一个非空表达式(从左向右)SELECT COALESCE(NULL, NULL,'CHINA', NULL, NULL,'STONEDB');
->CHINA
CONNECTION_ID()返回当前线程 IDSELECT CONNECTION_ID();
->5
CONV(x,f1,f2)返回 f1 进制数变成 f2 进制数SELECT CONV(28,10,16);
->1C
CONVERT(s USING cs)函数将字符串 s 的字符集变成 csSELECT CHARSET('ABC');
->utf8

SELECT CHARSET(CONVERT('ABC' USING gbk));
->gbk
CURRENT_USER()返回当前用户SELECT CURRENT_USER();
->root@localhost
DATABASE()返回当前数据库名SELECT DATABASE();
->test
IF(expr,v1,v2)如果表达式 expr 成立,返回结果 v1;否则返回结果 v2SELECT IF(1>10,'true','false') ;
->false
IFNULL(v1,v2)如果 v1 的值不为 NULL,则返回 v1,否则返回 v2SELECT IFNULL(null,'Hello Word');
->HelloWord
ISNULL(expression)判断表达式是否为 NULLSELECT ISNULL(NULL);
->1
LAST_INSERT_ID()返回最近生成的 AUTO_INCREMENT 值SELECT LAST_INSERT_ID();
->0
NULLIF(expr1, expr2)比较两个字符串,如果字符串 expr1 与 expr2 相等,返回 NULL,否则返回 expr1SELECT NULLIF(25,25);
->NULL
SESSION_USER()
SYSTEM_USER()
USER()
返回当前用户SELECT SESSION_USER();
->root@localhost
VERSION()返回数据库的版本号SELECT VERSION();
->5.6.24-StoneDB-log