欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

MYSQL 常用函数、条件判断、正则等的使用案例

程序员文章站 2022-05-30 10:22:38
...

MYSQL 常用函数、条件判断、正则等的使用案例


巧用函数、实现对数据进行匹配、加密、截取、格式化处理

  1. 替换文本:REPLACE(obj,from,to)
  2. 截取字符串:SUBSTR(obj,from,to)
  3. 正则判断:obj REGEXP “^[1][3456789]$”
  4. 条件判断(支持两个以上):CASE WHEN ’条件1‘ THEN ’结果1‘ WHEN ’条件2‘ THEN ’结果2‘ ELSE ’结果3‘ END
  5. 条件判断:IF(‘条件’,‘结果1’,‘结果2’)
  6. UUID:UUID()
  7. 判断非空:IFNULL(obj,to)
  8. 拼接字符串:CONCAT(str1,str2,…)

以下SQL可直接执行查看效果(将字符串改为要处理的字段名即可):

SELECT 
	REPLACE(UUID(),'-','') AS uuid,
	IFNULL(NULL,0) AS nullVal,
	REPLACE('17612345678', SUBSTR('17612345678',4,4), '****') AS phoneNumber, -- 处理手机号
	(CASE WHEN '15112345678' REGEXP "^[1][35678][0-9]{9}$" THEN REPLACE('15112345678', SUBSTR('15112345678',4,4), '****') ELSE '15112345678' END) AS `name`,
	(CASE WHEN 'nkxrb' REGEXP "^[1][35678][0-9]{9}$" THEN REPLACE('nkxrb', SUBSTR('nkxrb',4,4), '****') ELSE 'nkxrb' END) AS `nickname`,
	IF('nkxrb15112345678' REGEXP "^[1][35678][0-9]{9}$",REPLACE('nkxrb', SUBSTR('nkxrb',4,4), '****'),'nkxrb') AS name2,
	CONCAT('nk','xr','b') AS str
FROM DUAL