我有一个包含特殊数据的表格,需要在备份这些数据后隐藏它们。例如,我有一个包含电话号码的字段:
0020158578939
我需要把它变成这样:
002015*******
请问我应该使用哪个 SQL 命令来实现这个目标?我已经在这里搜索过了,但没有找到合适的答案。谢谢。
我有一个包含特殊数据的表格,需要在备份这些数据后隐藏它们。例如,我有一个包含电话号码的字段:
0020158578939
我需要把它变成这样:
002015*******
请问我应该使用哪个 SQL 命令来实现这个目标?我已经在这里搜索过了,但没有找到合适的答案。谢谢。
phone
,则此SQL语句将执行:SELECT CONCAT(SUBSTR(phone, 1, 6), REPEAT('*', CHAR_LENGTH(phone) - 6)) AS masked_phone
FROM `yourTable`
这个只会显示前6个字符,并用*
遮盖其余部分。
更新(根据您的评论):
备份后,您可以生成以下UPDATE
语句来掩盖电话号码:
UPDATE `yourTable`
SET phone = CONCAT(SUBSTR(phone, 1, 6), REPEAT('*', CHAR_LENGTH(phone) - 6))
SELECT CONCAT(REPEAT('*', CHAR_LENGTH(phone) - 6), SUBSTR(phone, -6)) AS masked_phone FROM yourTable
。其中的 6
是要保留的字符数。 - haim770UPDATE yourTable SET phone = CONCAT(REPEAT('*', CHAR_LENGTH(phone) - 6), SUBSTR(phone, -6))
- haim770SELECT RPAD(SUBSTR(PhoneNumber, 1, 6), Length(PhoneNumber), '*')
请查看此链接,了解RPAD函数的具体用法:http://dev.mysql.com/doc/refman/5.0/en/string-functions.html#function_rpad
base64_encode('0020158578939');当您需要使用它时,请使用以下内容进行解码:
base64_decode('your mysql field value of phone');否则,请使用以下内容:
md5('0020158578939'); sha1('0020158578939');