mysql常用函数介绍

流程控制函数
流程控制函数包含以下四种函数
? CASE value WHEN [compare_value] THEN result [WHEN
[compare_value] THEN result ...] [ELSE result] END
? 当value等于compare_value时,则返回result,否则返回else里的result,
如果没有else子句则返回null
? mysql> SELECT CASE 1 WHEN 1 THEN ‘one‘
? -> WHEN 2 THEN ‘two‘ ELSE ‘more‘ END;
? -> ‘one‘
? CASE WHEN [condition] THEN result [WHEN [condition] THEN
result ...] [ELSE result] END
? 当第一个condition满足时,则返回result,否则返回else里的result,如果
没有else子句时则返回null
? mysql> SELECT CASE WHEN 1>0 THEN ‘true‘ ELSE ‘false‘ END;
? -> ‘true‘
? mysql> SELECT CASE BINARY ‘B‘
? -> WHEN ‘a‘ THEN 1 WHEN ‘b‘ THEN 2 END;
? -> NULL
IF(expr1,expr2,expr3)
? 当expr1为1/true时,则返回expr2,否则返回expr3
? 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‘
? IFNULL(expr1,expr2)
? 当expr1为非null时,则返回expr1,否则返回expr2
? mysql> SELECT IFNULL(1,0);
? -> 1
? mysql> SELECT IFNULL(NULL,10);
? -> 10
? mysql> SELECT IFNULL(1/0,10);
? -> 10
? mysql> SELECT IFNULL(1/0,‘yes‘);
? -> ‘yes‘
? NULLIF(expr1,expr2)
? 当expr1等于expr2时,则返回null,否则返回expr1
? mysql> SELECT NULLIF(1,1);
? -> NULL
? mysql> SELECT NULLIF(1,2);
? -> 1
IFNULL(expr1,expr2)
? 当expr1为非null时,则返回expr1,否则返回expr2
? mysql> SELECT IFNULL(1,0);
? -> 1
? mysql> SELECT IFNULL(NULL,10);
? -> 10
? mysql> SELECT IFNULL(1/0,10);
? -> 10
? mysql> SELECT IFNULL(1/0,‘yes‘);
? -> ‘yes‘
? NULLIF(expr1,expr2)
? 当expr1等于expr2时,则返回null,否则返回expr1
? mysql> SELECT NULLIF(1,1);
? -> NULL
? mysql> SELECT NULLIF(1,2);
? -> 1
ASCII(str)
? 返回str字符串中最左边字符的ascii码值,如果是空串则返回0,如果str是null则返回null
? mysql> SELECT ASCII(‘2‘);
? -> 50
? mysql> SELECT ASCII(2);
? -> 50
? mysql> SELECT ASCII(‘dx‘);
? -> 100
? CHAR(N,... [USING charset_name])
? 将括号中的N转化成ascii码对应的字符,返回这些字符组成的字符串,其中的null会被忽略
? mysql> SELECT CHAR(77,121,83,81,‘76‘);
? -> ‘MySQL‘
? mysql> SELECT CHAR(77,77.3,‘77.3‘);
? -> ‘MMM‘
? mysql> SELECT CHARSET(CHAR(X‘65‘)), CHARSET(CHAR(X‘65‘ USING utf8));
? +----------------------+---------------------------------+
? | CHARSET(CHAR(X‘65‘)) | CHARSET(CHAR(X‘65‘ USING utf8)) |
? +----------------------+---------------------------------+
? | binary | utf8 |
? +----------------------+---------------------------------+
01
? CHAR_LENGTH(str)
? 返回字符串的字符长度
? CONCAT(str1,str2,...)
? 返回括号里所有参数字符串连接在一起,当其中有参数为NULL时则返回
NULL
? mysql> SELECT CONCAT(‘My‘, ‘S‘, ‘QL‘);
? -> ‘MySQL‘
? mysql> SELECT CONCAT(‘My‘, NULL, ‘QL‘);
? -> NULL
? mysql> SELECT CONCAT(14.3);
? -> ‘14.3
? CONCAT_WS(separator,str1,str2,...)
? 返回以第一个参数为分隔符的连接后的一个字符串,当有参数为NULL时则null
被忽略
? mysql> SELECT CONCAT_WS(‘,‘,‘First name‘,‘Second name‘,‘Last Name‘);
? -> ‘First name,Second name,Last Name‘
? mysql> SELECT CONCAT_WS(‘,‘,‘First name‘,NULL,‘Last Name‘);
? -> ‘First name,Last Name‘
? INSERT(str,pos,len,newstr)
? 将str中从pos位置开始后的len个字符替换成newstr字符串
? mysql> SELECT INSERT(‘Quadratic‘, 3, 4, ‘What‘);
? -> ‘QuWhattic‘
? mysql> SELECT INSERT(‘Quadratic‘, -1, 4, ‘What‘);
? -> ‘Quadratic‘
? mysql> SELECT INSERT(‘Quadratic‘, 3, 100, ‘What‘);
? -> ‘QuWhat‘
? LOAD_FILE(file_name)
? 读取文件且返回文件内容为字符串
? mysql> UPDATE t
? SET blob_col=LOAD_FILE(‘/tmp/picture‘)
? WHERE id=1;
? LOCATE(substr,str)
? 返回str字符串中第一次出现substr字符串的位置,如果没有则返回null
? mysql> SELECT LOCATE(‘bar‘, ‘foobarbar‘);
? -> 4
? mysql> SELECT LOCATE(‘xbar‘, ‘foobar‘);
? -> 0
? LOCATE(substr,str,pos)
? 返回str字符串中从pos位置开始第一次出现substr字符串的位置,如果没有则返
回null
? mysql> SELECT LOCATE(‘bar‘, ‘foobarbar‘, 5);
? -> 7
? LOWER(str)
? 返回将str字符串中所有字符变换成小写后的字符串,但对二进制文本无

? mysql> SELECT LOWER(‘QUADRATICALLY‘);
? -> ‘quadratically‘
? mysql> SET @str = BINARY ‘New York‘;
? mysql> SELECT LOWER(@str), LOWER(CONVERT(@str USING latin1));
? +-------------+-----------------------------------+
? | LOWER(@str) | LOWER(CONVERT(@str USING latin1)) |
? +-------------+-----------------------------------+
? | New York | new york |
? +-------------+-----------------------------------+
? LTRIM(str)
? 将str最左边的空格去掉并返回
? mysql> SELECT LTRIM(‘ barbar‘);
? -> ‘barbar‘
? REPEAT(str,count)
? 将str重复count并组合成字符串返回,如果count<1,则返回空串
? mysql> SELECT REPEAT(‘MySQL‘, 3);
? -> ‘MySQLMySQLMySQL‘
? REPLACE(str,from_str,to_str)
? 将所有str字符串中匹配from_str子串的地方都替换成to_str子字符串
? mysql> SELECT REPLACE(‘www.mysql.com‘, ‘w‘, ‘Ww‘);
? -> ‘WwWwWw.mysql.com‘
? REVERSE(str)
? 将str字符串中的字符按照倒序组合并返回
? mysql> SELECT REVERSE(‘abc‘);
? -> ‘cba‘
? RIGHT(str,len)
? 将str字符串中从右边开始的len个字符返回
? mysql> SELECT RIGHT(‘foobarbar‘, 4);
? -> ‘rbar‘
RPAD(str,len,padstr)
? 将字符串str从右边开始补充为padstr直到整体长度为len,如果str的长度本身大
于len,则返回str中len长度的字符串
? mysql> SELECT RPAD(‘hi‘,5,‘?‘);
? -> ‘hi???‘
? mysql> SELECT RPAD(‘hi‘,1,‘?‘);
? -> ‘h‘
? RTRIM(str)
? 将字符串str右边的空格去掉并返回
? mysql> SELECT RTRIM(‘barbar ‘);
? -> ‘barbar‘
? SPACE(N)
? 返回N个长度的空格组成的空字符串
? mysql> SELECT SPACE(6);
SUBSTR(str,pos), SUBSTR(str FROM pos), SUBSTR(str,pos,len), SUBSTR(str FROM
pos FOR len)
? SUBSTRING(str,pos), SUBSTRING(str FROM pos), SUBSTRING(str,pos,len),
SUBSTRING(str FROM pos FOR len)
? 如果没有len参数,则返回从pos位置开始的str中的子字符串;如果有len参数,则从pos
位置开始返回str中长度为len的子字符串;如果pos为负值,则代表pos从右边开始数
? mysql> SELECT SUBSTRING(‘Quadratically‘,5);
? -> ‘ratically‘
? mysql> SELECT SUBSTRING(‘foobarbar‘ FROM 4);
? -> ‘barbar‘
? mysql> SELECT SUBSTRING(‘Quadratically‘,5,6);
? -> ‘ratica‘
? mysql> SELECT SUBSTRING(‘Sakila‘, -3);
? -> ‘ila‘
? mysql> SELECT SUBSTRING(‘Sakila‘, -5, 3);
? -> ‘aki‘
? mysql> SELECT SUBSTRING(‘Sakila‘ FROM -4 FOR 2);
? -> ‘ki‘
SUBSTRING_INDEX(str,delim,count)
? 当count为正数,则返回delim出现在str字符串中第count次之前的子字符
串,如果是负数,则从右边开始计算
? mysql> SELECT SUBSTRING_INDEX(‘www.mysql.com‘, ‘.‘, 2);
? -> ‘www.mysql‘
? mysql> SELECT SUBSTRING_INDEX(‘www.mysql.com‘, ‘.‘, -2);
? -> ‘mysql.com‘
? UPPER(str)
? 返回将str字符串中所有字符转换成大写的字符串
? mysql> SELECT UPPER(‘Hej‘);
? -> ‘HEJ‘

mysql常用函数介绍

上一篇:Pandas读取或存储数据至Mysql


下一篇:postgresql循环插入数据