我正在尝试编写一个与表中的名称匹配的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不是很好,对正则表达式来说更是如此。我尝试了一些正则表达式,但没有想到它。有人可以帮我一把吗?
答案 0 :(得分:1)
只需在要搜索的列上使用replace即可。这将替换字段中的所有.
,但您可以将其与您要搜索的字词进行比较。
SELECT * FROM teams WHERE replace(name, '.', '') LIKE "%fast%"