如何在MySQL中搜索没有定义字符的字符串?

时间:2019-04-29 17:14:14

标签: mysql regex

我已经在MySQL 5.7.25表中存储了唯一标识符,它们是CHAR并包含点和斜杠。

现在,我需要搜索没有这些字符的

例如:已知字符串:25518000

表内:255.18.000

好像preg_replace似乎仅在MySQL> 8.x中实现。

如何在不考虑某些字符的情况下搜索给定的字符串?

类似这样的东西:

SELECT * FROM `cat_attr` WHERE `attr_de` REGEXP '\\.' = 25518000

2 个答案:

答案 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),例如

mysql-udf-regexpmysql_udf_preg