sql in()语句

sql in()语句,第1张

select * from news where keys like '%机械厂%'

呵呵,你这么写的,肯定只能用like,in是没办法做的,而且in的效率也不高。

如果真的想快一点,表内的数据很多那么就分批查询,具体怎么分批,可以考虑分区,如果没有明显字段就hash分区,然后在每个分区中分别查询,这样速度就上来了,而且查询结果页相对出来的快一点。

如果一定要用in,那么你这里只能是根据逗号将keys字段分成几个字段,然后在分别用in来做,不过这样做的话查询的sql不会太短,我估计还没有like快呢。

这样的话也只能是一层一层的剥:

先确定这个语句有没有结果:

结果1:select rerole.n_role_id

from TBL_USR_RE_ROLE rerole, TBL_USERS us

where us.n_usr_id = rerole.n_usr_id

and us.n_usr_id = 1716

如果有结果,再判断此语句有没有结果:

结果2:

select res.c_res_no

from TBL_RES res, TBL_ROLE_RE_RES re

where res.c_res_no = re.c_res_no

and re.c_auth_type = 'A'

and re.n_role_id in (结果1)

如果有结果,再判断此语句有没有结果:

SELECT t.c_res_no

FROM tbl_res t

START WITH t.c_res_no in (结果2)

CONNECT BY PRIOR t.c_p_res_no = t.c_res_no


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9630109.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-30
下一篇 2023-04-30

发表评论

登录后才能评论

评论列表(0条)

保存