我希望有人可以帮我处理MySQL查询,我试图创建。
表:客户 列:id,customer_firstname,customer_secondname,comments
目标:运行查找短语的查询,并考虑差异。
例如,我想找到:
"客户位于 伦敦" "客户位于 伦敦" "客户位于朝伦敦"
但我不想找到:
"客户位于附近的城市伦敦"
我只想要一个单词'通配符'在查询中。到目前为止,我有:
选择 cx.customer_firstname,cx.customer_secondname,cx.comments
这 custdatacx
WHERE cx.coms喜欢&%39%位于%London%'
但是这给了我"客户位于位于伦敦附近的城市"我想避免。
有什么想法吗?
答案 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',这样您就可以更改标准以查找数据。 '近'是非常不精确和开放的解释。说,明天你想知道住在牛津附近的人......你的意见是否还会有效?