mysql常见实战例子

2021-08-16  本文已影响0人  Geroge1226

1、前言

myql在实战使用过程中会遇到不同的场景,针对不同场景,使用方式需要整理记录,给以后遇到类似问题做参考使用。

2、根据当前查询的结果更新查询的某列值。

-- 初始化
update sys_user_info a SET a.encrypt_password=(select to_base64(AES_ENCRYPT(password, "ABA")) from DUAL);
-- 查询
SELECT (SELECT AES_DECRYPT(from_base64(encrypt_password), "MySQL-MOBILE-KEY") from DUAL) AS info, a.* FROM sys_user_info a

这里主要是对dual虚拟表的一种认识。实际上可以直接函数方式:

update sys_user_info  SET encrypt_mobile=to_base64(AES_ENCRYPT(mobile, "MySQL-MOBILE-KEY"));

SELECT  AES_DECRYPT(from_base64(encrypt_password), "MySQL-MOBILE-KEY")  AS info, a.* FROM sys_user_info a

3、数据脱敏

【场景描述】
类似手机号,需要中间4位 ‘*’ 处理。如:“187****4567”,姓名3个字的中间1位 ‘*’ 处理,2个字的后面1位 ‘*’处理。如: “李 * , 张*研
【实现方式】
(1)insert(mobile, 4,4,'****') :函数
(2) concat(left(mobile,3), '****', right(mobile,4)) :联接函数
(3)REPLACE(mobile, SUBSTR(mobile,4,4), '****') :替换函数

【实现语句】

-- 更新手机号
update sys_user_info set mobile = insert(mobile,4,4,'****');
--  更新用户名
update sys_user_info set real_name = replace(real_name,substr(real_name,2,1),'*');
上一篇 下一篇

猜你喜欢

热点阅读