我已经在MySQL 5.7.25表中存储了唯一标识符,它们是CHAR并包含点和斜杠。
现在,我需要搜索没有这些字符的
。例如:已知字符串:25518000
表内:255.18.000
好像preg_replace似乎仅在MySQL> 8.x中实现。
如何在不考虑某些字符的情况下搜索给定的字符串?
类似这样的东西:
SELECT * FROM `cat_attr` WHERE `attr_de` REGEXP '\\.' = 25518000
答案 0 :(得分:3)
如果始终是点,空格和斜杠,则可以执行以下操作:
SELECT *
FROM cat_attr
WHERE REPLACE(REPLACE(REPLACE(attr_de, '.', ''), '\\', ''), ' ', '') = 25518000;
例如,它返回true:
SELECT REPLACE(REPLACE(REPLACE('11\ 11.1', '.', ''), '\\', ''), ' ', '') = 11111;
答案 1 :(得分:0)
如果您有权访问服务器,则可以使用用户定义的函数(UDF),例如