查询以在文本中搜索国家名称

时间:2013-12-13 10:36:51

标签: sql sqlite match

我需要一个简单的查询来查找文本中的国家/地区。 我有一张桌子上有不同的文章,桌面上有世界上所有的国家名称。

  

ID |制品

     

1 |在中国,一头三头鱿鱼卖给了自行车供应商

     

2 |尼日利亚政府组织了一次睡眠派对

     

3 |奥地利禁止澳大利亚喜剧演员

     

CID |名称

     

1 |尼日利亚

     

2 |曲霉

     

3 |奥地利

     

4 |中国*

我只需要文章中出现完整国家/地区名称的匹配项。我目前正在使用“喜欢”的查询:

> Where a.Article like '%'||b.Name||'%'

但这样来自NIGERIA的文章也与NIGER相匹配。

有什么建议吗?

3 个答案:

答案 0 :(得分:2)

WHERE a.Article RLIKE "[[:<:]]b.Name[[:>:]]"

尝试上面的where子句

这是一个SQL小提琴,我在其中选择了articles表中的所有文章,这些文章都指的是尼日利亚。

http://sqlfiddle.com/#!2/8b8c6/3

答案 1 :(得分:1)

您可以在国家/地区名称前后添加空格,如下所示:

Where a.Article like '% '||b.Name||' %'

不太正确,因为您还需要考虑国家/地区名称是第一个也是最后一个字。所以你还需要检查

Where a.Article like '%'||b.Name||' %'

Where a.Article like '% '||b.Name||'%'

答案 2 :(得分:1)

试试这个:!

SELECT * FROM tbl_article a WHERE (a.Article REGEXP ('EXACT VALUE'));