MySQL LIke语句带有对通配符的扭曲

时间:2014-07-16 16:26:07

标签: mysql

我希望有人可以帮我处理MySQL查询,我试图创建。

表:客户 列:id,customer_firstname,customer_secondname,comments

目标:运行查找短语的查询,并考虑差异。

例如,我想找到:

"客户位于 伦敦" "客户位于 伦敦" "客户位于伦敦"

但我不想找到:

"客户位于附近的城市伦敦"

我只想要一个单词'通配符'在查询中。到目前为止,我有:

选择 cx.customer_firstname,cx.customer_secondname,cx.comments

这 custdatacx

WHERE cx.coms喜欢&%39%位于%London%'

但是这给了我"客户位于位于伦敦附近的城市"我想避免。

有什么想法吗?

2 个答案:

答案 0 :(得分:3)

使用MySQL您可以使用RLIKE代替LIKE使用正则表达式并使用OR(|

SELECT cx.customer_firstname, cx.customer_secondname, cx.comments
FROM custdatacx
WHERE cx.comments rlike 'located (in|towards|near) London'

答案 1 :(得分:0)

查看MySQL手册中有关正则表达式的章节。使用正则表达式,您可以进行更复杂的文本搜索。

那就是说,我会认真考虑改变你的理念。将城市另存为列,计算距离而不是使用' near',这样您就可以更改标准以查找数据。 '近'是非常不精确和开放的解释。说,明天你想知道住在牛津附近的人......你的意见是否还会有效?