mysql函数应用

昨天测试时发现大佬暴力修改了数据库的某些字段,导致无法人员注册,按理说屏蔽关键信息应该是只将身份证的几位改为*就好。

为了继续测试,自力更生,寻求正确的sql语句修改,学习到一些方便的函数

concat函数
使用方法:
CONCAT(str1,str2,…)  

返回结果为连接参数产生的字符串。如有任何一个参数为NULL ,则返回值为 NULL。

MID()函数

SQL MID() 函数用于得到一个字符串的一部分。这个函数被MySQL支持,但不被MS SQL Server和Oracle支持。在SQL Server, Oracle 数据库中,我们可以使用 SQL SUBSTRING函数或者 SQL SUBSTR函数作为替代。

MID() 函数语法为:

1 SELECT MID(ColumnName, Start [, Length])
2 FROM TableName

注:字符串从1开始,而非0,Length是可选项,如果没有提供,MID()函数将返回余下的字符串。

LEFT()函数

是一个字符串函数,它返回具有指定长度的字符串的左边部分。

  LEFT(Str,length);

  接收两个参数:

    str:一个字符串;

    length:想要截取的长度,是一个正整数;

right()函数同理,只是从右边开始截取

最后放上测试用的sql 

SELECT
CONCAT("UPDATE `persons` SET LastName='",CONCAT(LEFT(LastName,1),'**',RIGHT(LastName,2)),"' WHERE (`LastName`='",LastName,"') LIMIT 1;"
)
FROM
persons

双引号内部要执行表达式用逗号隔开,不然执行时还是当字符串。

原文地址:https://www.cnblogs.com/henry2019/p/14313788.html