SQL 怎样判断一个字段中是否存在某一个值

比如说同一个字段里面有aa,bb,cc,dd用什么语句能通过aa查询出包含aa的字段的这条记录别要说用LIKE,我想要精确的这里的字段值内容并不固定,可能还包括aaaaa... 比如说同一个字段里面有
aa,bb,cc,dd
用什么语句能通过aa查询出包含aa的字段的这条记录
别要说用LIKE,我想要精确的
这里的字段值内容并不固定,可能还包括aaaaa的情况,如果用like的话得判断好多种情况,考虑会影响效率,有没有一种类似于 in 的方法,可以直接精确的得到结果?
展开
 我来答
匿名用户
推荐于2016-04-16
展开全部
INSTR(C1,C2,I,J)
在一个字符串中搜索指定的字符,返回发现指定的字符的位置;
C1 被搜索的字符串
C2 希望搜索的字符串
I 搜索的开始位置,默认为1
J 出现的位置,默认为1
SQL> select instr(’oracle traning’,’ra’,1,2) instring from dual;
INSTRING
---------
9
奔驰M888
推荐于2018-03-11 · TA获得超过1.1万个赞
知道大有可为答主
回答量:1846
采纳率:0%
帮助的人:2706万
展开全部
按照你的要求只能用like。
like '%,%aa%,%';

---
以上,希望对你有所帮助。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
莘深潮朝
2020-05-21 · TA获得超过3840个赞
知道大有可为答主
回答量:3146
采纳率:30%
帮助的人:187万
展开全部
使用函数
charindex,第一个参数是你要查找的字符,第二个参数是要在哪个字符中查找
比如:
SELECT
CHARINDEX('1','123456')
返回1所在的位置
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
wastelandxf
2010-03-25 · TA获得超过281个赞
知道小有建树答主
回答量:400
采纳率:25%
帮助的人:245万
展开全部
没有办法,你的这个问题我也碰到很多次,如果字段内容完全是按你给出这样aa,bb,cc,dd的,like 还是可以精确匹配的,因为有逗号分隔符,但是还有其他更复杂的情况,没有明显的分割,那就难办了。对于你说的效率问题,即使有类似有in之类的方法,oracle内部本身也是需要一个一个去匹配的,效率不会有所提升,只是改变下sql的表达方法而已。其实这些值本来可以拆成一对多的关系
,哎,没有办法,表是人家很早就这样设计的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
hydra73
2010-03-28 · TA获得超过718个赞
知道小有建树答主
回答量:556
采纳率:0%
帮助的人:633万
展开全部
mysql 的MyISAM存储引擎可以支持全文检索,通常mysql的默认存储引擎就是MyISAM,你可以把要查询的字段建立索引,不管你用什么方法,查询效率会有较大的提高
不推荐用 '%like%',因为索引的左匹配原则,它是不能使用索引的
可以使用 in ,in 可以使用索引

如果你要精确查找,可以建立反向索引
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(8)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式