Mysql 常用函数
字符串函数
CONCAT(str1, str2...) ---- 将传入的字符串连接成一个新的字符串,任何字符串和 NULL 连接结果都是 NULL INSERT(str, index, size, str1) ---- 从第 index 个开始,一共 size 个字符,替换成 str1 SELECT INSERT('abcdef', 3, 2, '*') // ab*ef LOWER(str)、UPPER(str) ---- 字母字符大小写转换 LEFT(str, size)、RIGHT(str, size) ---- 返回左边/右边 size 个字符 SELECT LEFT('chengdu',3) // che LTRIN(str)、TRIM(str)、RTRIM(str) ---- 去左边/全部/右边空格 REPLACE(str, str1, str2) ---- 把 str 中的 str1 替换成 str2 SUBSTR(str, start, size) ---- 在 str 中第 start 开始截取 size 个字符 SELECT SUBSTR('abcdef', 3, 2) // cd STR_TO_DATE(str, format) ---- 字符串 str 按照 format 格式转成日期类型 SELECT STR_TO_DATE('2018-08-16', %Y-%m-%d %H:%i:%s) // datetime 型的 2018-08-16
数值函数
ABS(x) ---- 取绝对值
CEIL(x) ---- 向上取整
FLOOR(x) ---- 向下取整
MOD(x,y) ---- 求模,返回 x/y 的余数
RAND() ---- 0~1 之间的随机数
SELECT CEIL(RAND() * 10) // 0 - 10 之间的整数
日期和时间函数
CURDATE() 当前日期
CURTIME() 当前时间
NOW() 当前日期时间
UNIX_TIMESTAMP 当前日期时间的时间戳
FORM_UNIXTIME(时间戳) 把时间戳转成日期时间
DATE_ADD(date, INTERVAL num type) 传入的日期进行相加
SELECT_ADD(NOW(), INTERVAL 3 DAY) // 返回当前日期时间加 3 天
SELECT_ADD(NOW(), INTERVAL 3 YEAR) // 返回当前日期时间加 3 年
SELECT_ADD(NOW(), INTERVAL -3 SECOND) // 返回当前日期减 3 秒
流程函数
IF(value, t, f) 如果 value 为真,返回 t ,反之返回 f
# 如果学生总数大于 3,就查询男同学信息,否者查女同学
SELECT * FROM students WHERE gender = IF((SELECT COUNT(*) FROM students) > 3, '男', '女');
IFNULL(value1, value2) 如果 value1 不为空返回 value1,否者返回 value2
CASE WHEN THEN END
SELECT CASE WHEN 2>3 THEN 'right' ELSE 'wrong' END; // 如果2>3,返回 right,否者返回 wrong
其他
DATABASE() 返回当前数据库名
VERSION() 返回当前数据库版本
USER() 返回当前用户
PASSWORD(str) 对 str 进行加密
MD5(str) 返回 str 的 MD5 值