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 值

 

posted @ 2018-08-17 20:28  huanggy  阅读(644)  评论(0编辑  收藏  举报