SQL 怎样判断一个字段中是否存在某一个值
比如说同一个字段里面有aa,bb,cc,dd用什么语句能通过aa查询出包含aa的字段的这条记录别要说用LIKE,我想要精确的这里的字段值内容并不固定,可能还包括aaaaa...
比如说同一个字段里面有
aa,bb,cc,dd
用什么语句能通过aa查询出包含aa的字段的这条记录
别要说用LIKE,我想要精确的
这里的字段值内容并不固定,可能还包括aaaaa的情况,如果用like的话得判断好多种情况,考虑会影响效率,有没有一种类似于 in 的方法,可以直接精确的得到结果? 展开
aa,bb,cc,dd
用什么语句能通过aa查询出包含aa的字段的这条记录
别要说用LIKE,我想要精确的
这里的字段值内容并不固定,可能还包括aaaaa的情况,如果用like的话得判断好多种情况,考虑会影响效率,有没有一种类似于 in 的方法,可以直接精确的得到结果? 展开
10个回答
推荐于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
在一个字符串中搜索指定的字符,返回发现指定的字符的位置;
C1 被搜索的字符串
C2 希望搜索的字符串
I 搜索的开始位置,默认为1
J 出现的位置,默认为1
SQL> select instr(’oracle traning’,’ra’,1,2) instring from dual;
INSTRING
---------
9
展开全部
按照你的要求只能用like。
like '%,%aa%,%';
---
以上,希望对你有所帮助。
like '%,%aa%,%';
---
以上,希望对你有所帮助。
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
使用函数
charindex,第一个参数是你要查找的字符,第二个参数是要在哪个字符中查找
比如:
SELECT
CHARINDEX('1','123456')
返回1所在的位置
charindex,第一个参数是你要查找的字符,第二个参数是要在哪个字符中查找
比如:
SELECT
CHARINDEX('1','123456')
返回1所在的位置
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
没有办法,你的这个问题我也碰到很多次,如果字段内容完全是按你给出这样aa,bb,cc,dd的,like 还是可以精确匹配的,因为有逗号分隔符,但是还有其他更复杂的情况,没有明显的分割,那就难办了。对于你说的效率问题,即使有类似有in之类的方法,oracle内部本身也是需要一个一个去匹配的,效率不会有所提升,只是改变下sql的表达方法而已。其实这些值本来可以拆成一对多的关系
,哎,没有办法,表是人家很早就这样设计的
,哎,没有办法,表是人家很早就这样设计的
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
mysql 的MyISAM存储引擎可以支持全文检索,通常mysql的默认存储引擎就是MyISAM,你可以把要查询的字段建立索引,不管你用什么方法,查询效率会有较大的提高
不推荐用 '%like%',因为索引的左匹配原则,它是不能使用索引的
可以使用 in ,in 可以使用索引
如果你要精确查找,可以建立反向索引
不推荐用 '%like%',因为索引的左匹配原则,它是不能使用索引的
可以使用 in ,in 可以使用索引
如果你要精确查找,可以建立反向索引
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询