在mysql中查询匹配的结果与mysql一样

时间:2013-07-16 06:35:38

标签: mysql search

我正在LIKE使用多个关键字OR条件进行搜索。我想知道是否可以获得搜索结果并使用关键字来获得该结果。

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与两个关键字匹配,还有一个问题。我真的不知道。怎么做。

例如,“英国和法国”是位置名称

你为什么要这样做?

您可能有这个问题,我尝试了获取位置国家/地区名称的所有可能方法。我有countrylist表,包含代码和名称。使用它我喜欢获取位置名称

很少有其他实验

  1. reverse phrase search in zend lucene
  2. Location search query issue
  3. PS:我知道,我可以为每个国家分别运行查询。我为城市做同样的事情意味着成千上万,为了减少查询次数,我正在寻找替代方案。

1 个答案:

答案 0 :(得分: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子句将返回所有行。