🐬 MySQL 常用函数
📌 字符串函数
sql
-- 长度
LENGTH(str) -- 字节长度
CHAR_LENGTH(str) -- 字符长度
-- 拼接
CONCAT(str1, str2, ...) -- 拼接字符串
CONCAT_WS(',', a, b, c) -- 用逗号拼接 a,b,c
-- 大小写转换
UPPER(str) -- 转大写
LOWER(str) -- 转小写
-- 子串
SUBSTRING(str, pos, len) -- 截取子串
LEFT(str, len) -- 从左截取
RIGHT(str, len) -- 从右截取
-- 去空格
TRIM(str) -- 去掉首尾空格
LTRIM(str) -- 去掉左侧空格
RTRIM(str) -- 去掉右侧空格
-- 替换
REPLACE(str, from, to) -- 替换子串
-- 查找
INSTR(str, substr) -- 返回子串位置
LOCATE(substr, str) -- 同上
📌 数值函数
sql
-- 四舍五入
ROUND(x) -- 四舍五入
ROUND(x, d) -- 保留 d 位小数
TRUNCATE(x, d) -- 截断到 d 位小数
-- 绝对值
ABS(x) -- 绝对值
-- 取整
CEIL(x) / CEILING(x) -- 向上取整
FLOOR(x) -- 向下取整
-- 取余
MOD(x, y) -- x % y
-- 随机数
RAND() -- 返回 [0,1) 随机数
📌 日期时间函数
sql
-- 当前时间
NOW() -- 当前日期时间
CURDATE() -- 当前日期
CURTIME() -- 当前时间
SYSDATE() -- 系统时间
-- 提取部分
YEAR(date) -- 年
MONTH(date) -- 月
DAY(date) -- 日
HOUR(time) -- 时
MINUTE(time) -- 分
SECOND(time) -- 秒
DAYOFWEEK(date) -- 星期 (1=周日)
-- 格式化
DATE_FORMAT(date, format)
-- 示例: DATE_FORMAT(NOW(), '%Y-%m-%d %H:%i:%s')
-- 日期运算
DATEDIFF(d1, d2) -- 相差天数
TIMESTAMPDIFF(unit, d1, d2)
-- 示例: TIMESTAMPDIFF(DAY, '2025-01-01', NOW())
DATE_ADD(date, INTERVAL n unit)
DATE_SUB(date, INTERVAL n unit)
-- 示例: DATE_ADD(NOW(), INTERVAL 7 DAY)
📌 聚合函数
sql
COUNT(*) -- 统计行数
COUNT(DISTINCT col) -- 统计不同值个数
SUM(col) -- 求和
AVG(col) -- 平均值
MAX(col) -- 最大值
MIN(col) -- 最小值
📌 条件与流程控制函数
sql
-- IF 判断
IF(expr, val1, val2)
-- expr 为真返回 val1,否则 val2
-- NULL 处理
IFNULL(expr, default_val)
-- expr 为 NULL 返回默认值
-- CASE 表达式
CASE
WHEN condition1 THEN result1
WHEN condition2 THEN result2
ELSE resultN
END
📌 JSON 函数(MySQL 5.7+)
sql
JSON_EXTRACT(json_doc, path) -- 提取 JSON 字段
JSON_SET(json_doc, path, val) -- 设置值
JSON_ARRAY(val1, val2, ...) -- 创建 JSON 数组
JSON_OBJECT(k1, v1, k2, v2, ...) -- 创建 JSON 对象
📌 加密与其他
sql
MD5(str) -- 计算 MD5
SHA1(str) -- 计算 SHA1
PASSWORD(str) -- MySQL 内部密码函数(不推荐)
✅ 这份速查表能覆盖日常开发绝大部分函数需求。