首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SQL reverse LIKE

SQL reverse LIKE
EN

Stack Overflow用户
提问于 2012-05-11 18:49:06
回答 3查看 7.2K关注 0票数 13

我有一张桌子,上面有一张国家的列表。假设其中一个国家是“马其顿”。

如果搜索“共和国”,哪条SQL查询会返回“made”记录?

我相信在linq中它会是这样的

代码语言:javascript
复制
var countryToSearch = "Republic of Macedonia";

var result =  from c in Countries
              where countryToSearch.Contains(c.cName) 
              select c;

现在,上面查询的SQL等价物是什么?

如果是另一种方式(即数据库存储了国家名称的长版本),下面的查询应该可以工作:

代码语言:javascript
复制
Select * from country
where country.Name LIKE (*Macedonia*)

但我不知道如何才能扭转这一局面。

附注:表中的国家/地区名称始终为国家/地区名称的简称

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-05-11 18:56:50

您可以使用CHARINDEX来实现这一点。

代码语言:javascript
复制
Select * from country
where CHARINDEX(country.Name, 'Republic of Macedonia') > 0
票数 11
EN

Stack Overflow用户

发布于 2012-05-11 18:51:52

只需颠倒运算符(并修复语法)

代码语言:javascript
复制
Select * from country
where 'Republic of Macedonia' LIKE CONCAT('%',country.Name,'%')
票数 9
EN

Stack Overflow用户

发布于 2018-10-20 12:07:07

对于SQLite,可以将表(mytable)中的表字符串(mysubstring)列与任意更大的测试字符串进行比较:

select * from mytable where instr('Somewhere substring is here', mytable.mySubstring) > 0

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10549929

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档