2014-07-16 115 views
1

我希望有人可以幫我用我正在創建的MySQL查詢。MySQL LIKE語句與通配符轉折

表:客戶 列:ID,customer_firstname,customer_secondname評論

目標:運行一個查詢,查找一個短語,以給方差一些考慮。

例如,我想找到:

「客戶所在倫敦」 「客戶所在附近倫敦」 「客戶位於倫敦」

但我不想找到:

「客戶位於倫敦附近的城市」

我只想在查詢中使用單個單詞「通配符」。到目前爲止,我有:

選擇 cx.customer_firstname,cx.customer_secondname,cx.comments

FROM custdatacx

WHERE cx.comments LIKE '%位於倫敦%%'

但這是給我「客戶位於倫敦附近的城市」,我想避免。

有什麼想法?

+0

你期望有多少單詞,如「in」,「near」,「towards」?如果它很少,那麼你可以用OR來獲得所有的案例。 – Feign

回答

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' 
+0

在你的例子中'rike'應該是'rlike' – ThomasEdwin

+0

@Thomas:typo,thx – mb14

0

看一看關於MySQL手冊正則表達式的章節。使用正則表達式,你可以做更復雜的文本搜索。

這就是說,我會認真考慮改變你的哲學。將城市保存爲列,計算距離而不是使用'near',這樣您就可以更改標準以查找數據。 '接近'相當不準確並且可以解釋。說,明天你想知道誰住在牛津附近...你的意見是否仍然有效?