2013-07-16 60 views
1

我在做LIKE使用OR使用多個關鍵字搜索條件。我想知道是否有可能獲得搜索結果和使用關鍵字的結果。在mysql中使用關鍵字獲得匹配結果like查詢

SELECT * FROM `LOCATIONS` WHERE `location_name` LIKE '%United Kingdom%' OR `location_name` LIKE '%France%'; 

查詢獲得與兩個關鍵字匹配的結果,我想要得到的匹配是從這樣的關鍵字!

location_name     usedKeyword 

United Kingdom UK    United Kingdom 

Lille, France     France 

London, United Kingdom  United Kingdom 

事件這是可能的我知道如果location_name匹配兩個關鍵字還有一個問題。我真的不知道。這個怎麼做。

例如,「英國和法國」是地名

你爲什麼要這麼做?

您可能有這個問題,我試驗了所有可能的方法來獲取位置的國家名稱。我有代碼和名字的鄉村表。使用我希望得到地點名稱

很少有其他實驗

  1. reverse phrase search in zend lucene
  2. Location search query issue

PS:我知道,我可以separatly每個國家運行查詢。我對城市的做法意味着數千人,爲了儘量減少查詢次數,我正在尋找替代方案。

回答

1

使用CASE表達式:

SELECT *, 
     CASE WHEN location_name LIKE '%United Kingdom%' 
      THEN 'United Kingdom' 
      WHEN location_name LIKE '%France%' 
      THEN 'France' 
     END usedKeyword 
FROM `LOCATIONS` 
WHERE `location_name` LIKE '%United Kingdom%' 
    OR `location_name` LIKE '%France%'; 

還請參閱校正WHERE子句。您的WHERE子句將返回所有行。

+0

感謝Barmar,你認爲這個查詢可以處理「英國和法國」的位置名稱 – Gowri

+0

作爲第一種情況,你可以把'當location_name LIKE'%United Kingdom%'AND location_name LIKE'%France%''。但是沒有簡單的方法將它推廣到許多選擇,因爲組合將呈指數級增長。 – Barmar

+0

是的,我明白,你認爲我們可以排除這種情況下的搜索結果嗎? – Gowri

相關問題