You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

MySQL账号掩码实现:长度超4位的前置字符替换为X保留后4位

MySQL 账号前置掩码转换实现方案

实现逻辑

按照需求规则,掩码逻辑如下:

  • 账号长度 ≤4 位:直接返回原始账号
  • 账号长度 >4 位:超出4位的所有前置字符替换为X,保留最后4位原始字符

具体实现SQL

如果你的账号存储为字符串类型(字段名为account),直接使用以下查询语句:

SELECT 
    IF(
        LENGTH(account) > 4,
        CONCAT(LPAD('', LENGTH(account) - 4, 'X'), RIGHT(account, 4)),
        account
    ) AS masked_account
FROM 替换为你的业务表名;

如果你的账号存储为数值类型,需要先转换为字符串再处理:

SELECT 
    IF(
        LENGTH(CAST(account AS CHAR)) > 4,
        CONCAT(LPAD('', LENGTH(CAST(account AS CHAR)) - 4, 'X'), RIGHT(CAST(account AS CHAR), 4)),
        CAST(account AS CHAR)
    ) AS masked_account
FROM 替换为你的业务表名;

函数说明

  • LENGTH():获取账号字符串的总长度
  • LPAD('', 填充长度, 'X'):生成对应位数的X字符串,填充长度为总长度减去4,刚好对应需要替换的前置字符数量
  • RIGHT(字符串, 4):截取账号最后4位原始字符
  • IF(条件, 成立返回值, 不成立返回值):按规则做分支判断

效果验证

对应给出的测试用例,输出结果完全匹配需求:

原始账号掩码后结果
12345664XXXX5664
123546XX3546
66662X6662
11111111

内容的提问来源于stack exchange,提问作者Hasintha Chamara

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.17 11:15:03