mysql常用函数

操作符优先级

下图展示了所有操作符的执行优先级,从高到低,同一行中的操作符优先级相同,相同优先级的情况下则从左到右执行,如果想改变优先级执行顺序,则可以使用括号

 

对比操作符

•对比操作符的执行结果为true,false,null三种
• Coalesce()代表返回第一个非Null的值
• Greatest()代表返回最大的值
• In()代表检查值是否在一系列的值之中
• Interval()代表返回比第一个参数小的参数的位置

• Isnull()代表检查参数是NULL
• Least()代表返回最小的参数

• Strcmp()对比两个字符串

 

逻辑操作符

• 逻辑操作符返回1 (TRUE), 0 (FALSE), 或者NULL

• Xor逻辑操作符
• mysql> SELECT 1 XOR 1;
• -> 0
• mysql> SELECT 1 XOR 0;
• -> 1
• mysql> SELECT 1 XOR NULL;
• -> NULL
• mysql> SELECT 1 XOR 1 XOR 1;
• -> 1

 

流程控制函数

• 流程控制函数包含以下四种函数

语法格式:

• 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;

 mysql-> 'one'

• IF(expr1,expr2,expr3)

• 当expr1为1/true时,则返回expr2,否则返回expr3

• IFNULL(expr1,expr2)

• 当expr1为非null时,则返回expr1,否则返回exp2

• NULLIF(expr1,expr2)

• 当expr1等于expr2时,则返回null,否则返回exp1

 

字符串函数

• CHAR_LENGTH(str)

• 返回字符串的字符长度
• CONCAT(str1,str2,...)
• 返回括号里所有参数字符串连接在一起,当其中有参数为NULL时则返回NULL

• CONCAT_WS(separator,str1,str2,...)
• 返回以第一个参数为分隔符的连接后的一个字符串,当有参数为NULL时则null被忽略

• INSERT(str,pos,len,newstr)
• 将str中从pos位置开始后的len个字符替换成newstr字符串

例:

• mysql> SELECT INSERT('Quadratic', 3, 4, 'What');
• mysql-> 'QuWhattic

• INSTR(str,substr)
• 返回str字符串中第一个出现substr字符串的位置

例:

• mysql> SELECT INSTR('foobarbar', 'bar');
• mysql-> 4

• LEFT(str,len)
• 返回str字符串中从左边开始的len个长度的字符

例:

• mysql> SELECT LEFT('foobarbar', 5);
• mysql-> 'fooba'

• LENGTH(str)

• 返回str字符串的byte字节长度

• mysql> SELECT LENGTH('text');
• mysql-> 4

• LOWER(str)
• 返回将str字符串中所有字符变换成小写后的字符串,但对二进制文本无效

例:

• mysql> SELECT LOWER('QUADRATICALLY');
• mysql-> 'quadratically'

• UPPER(str)
• 返回将str字符串中所有字符转换成大写的字符串

例;

• mysql> SELECT UPPER('Hej');
• mysql-> 'HEJ'

• LTRIM(str) | RTRIM(str)
• 将str最左边|最右边的空格去掉并返回

例:
• mysql> SELECT LTRIM('   barbar');
• mysql-> 'barbar‘

• REPLACE(str,from_str,to_str)
• 将所有str字符串中匹配from_str子串的地方都替换成to_str子字符串

例:
• mysql> SELECT REPLACE('www.mysql.com', 'w', 'Ww');
• mysql-> 'WwWwWw.mysql.com'

 

日期和时间函数

• ADDDATE(date,INTERVAL expr unit), ADDDATE(expr,days)
• 当expr为正数时则为增加时间,为负数时则为减少时间
• Unit参数可以是任意时间单位

例:

• mysql> SELECT ADDDATE('2018-01-02', INTERVAL 31 DAY);
• mysql-> '2018-02-02'

• DATE(expr)
• 获取expr中的日期

例:
• mysql> SELECT DATE('2018-12-31 01:02:03');
•mysql -> '2018-12-31'

• DATE_ADD(date,INTERVAL expr unit)

• 增加时间

例:

• mysql> SELECT DATE_ADD('2018-12-31 23:59:59'  INTERVAL 1 SECOND);
•mysql-> '2019-01-01 00:00:00'

• mysql> SELECT DATE_ADD('2018-12-31 23:59:59' INTERVAL 1 DAY);
• mysql-> '2019-01-01 23:59:59'

• FROM_UNIXTIME(unix_timestamp)

• 根据给定的unixtime,返回yyyy-mm-dd hh:mi:ss

• UNIX_TIMESTAMP(), UNIX_TIMESTAMP(date)
• 如果没有date参数,则返回当前时间到1970-01-01 00:00:00之间的秒数,如果有date参数,则表示date到1970-01-01 00:00:00之间的秒数

• mysql> SELECT UNIX_TIMESTAMP('2015-11-13 10:20:19');
• mysql-> 1447431619 

• DATE_FORMAT(date,format)
• 将date日期时间转换成format格式

posted @ 2019-03-15 11:18  h_s  阅读(535)  评论(0编辑  收藏  举报