PHP环境下如何基于掩码ID在MySQL中查询原始ID
问题解答
可行性判断
完全可行,只要明确掩码规则(从目标原始ID反推,掩码85***80的规则是保留原始ID中连续的85和80片段,中间3个字符用***隐藏),就能通过MySQL的模糊查询匹配到对应的原始ID。
实现方法
根据掩码规则,有两种常见实现方式:
1. 精确匹配固定长度的隐藏字符
如果掩码中的***固定代表3个任意字符(对应目标ID里的222),可以用下划线_作为单个字符通配符(MySQL中_匹配任意单个字符),执行以下查询:
SELECT id FROM your_table WHERE id LIKE '%85___80%';
该语句会匹配所有包含85后接3个任意字符、再接80的ID,能精准命中目标值11852228024。
2. 匹配任意长度的隐藏字符
如果掩码中的***仅表示中间有任意数量的隐藏字符(不固定长度),可以用百分号%作为任意长度字符通配符,执行以下查询:
SELECT id FROM your_table WHERE id LIKE '%85%80%';
注意:这种方式可能匹配到其他包含85和80的ID,若数据库中存在多个符合该模式的ID,需结合其他条件进一步筛选。
补充优化
如果原始ID有固定长度(比如目标ID是11位),可以加入长度约束提升精准度:
SELECT id FROM your_table WHERE id LIKE '%85___80%' AND LENGTH(id) = 11;
内容的提问来源于stack exchange,提问作者Mxrcy
相关产品推荐
相关产品推荐

