我正在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表,包含代码和名称。使用它我喜欢获取位置名称
很少有其他实验
PS:我知道,我可以为每个国家分别运行查询。我为城市做同样的事情意味着成千上万,为了减少查询次数,我正在寻找替代方案。
答案 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
子句将返回所有行。