mysql正则表达式匹配带有和不带点的字符串

时间:2014-10-29 23:01:31

标签: php mysql regex

我正在尝试编写一个与表中的名称匹配的mysql查询,并且数据库中的名称可以包含点或无点。所以,例如我想要我的查询字符串" fast"匹配所有这些:"快速"," f.ast"," f.a.s.t"等

我无法预测点的位置,所以使用LIKE似乎不合适

SELECT * FROM teams WHERE (name LIKE "%fast%" OR `name` LIKE "%f.ast%")

我想如果我能得到正则表达式,那么我就不会这样做。需要使用LIKE

SELECT * FROM teams WHERE name REGEXP '.*'

我对sql不是很好,对正则表达式来说更是如此。我尝试了一些正则表达式,但没有想到它。有人可以帮我一把吗?

1 个答案:

答案 0 :(得分:1)

只需在要搜索的列上使用replace即可。这将替换字段中的所有.,但您可以将其与您要搜索的字词进行比较。

SELECT * FROM teams WHERE replace(name, '.', '') LIKE "%fast%"