sql 百万数据模糊查询 多or

我查询一个表,同一个字段要比配很多的关键词,请大家看sql语句------------------------------------select*fromkuaif_d... 我查询一个表,同一个字段要比配很多的关键词,请大家看sql语句
------------------------------------
select * from kuaif_down_rj where (
rjfl like '%,29,%' or
rjfl like '%,30,%' or
rjfl like '%,31,%' or
rjfl like '%,32,%' or
rjfl like '%,33,%' or
rjfl like '%,34,%' or
rjfl like '%,35,%' or
rjfl like '%,36,%' or
rjfl like '%,37,%' or
rjfl like '%,38,%' or
rjfl like '%,39,%' or
rjfl like '%,40,%' or
rjfl like '%,41,%' or
rjfl like '%,42,%' or
rjfl like '%,43,%' or
rjfl like '%,44,%' or
rjfl like '%,45,%' or
rjfl like '%,46,%' or
rjfl like '%,47,%' or
rjfl like '%,48,%' or
rjfl like '%,49,%' or
rjfl like '%,50,%'
) order by time_h desc
-----------------------------------------
以上查询很慢,而且占cpu,大家有没有更好的查询方法?
没有分,希望大家能帮帮忙啊
展开
 我来答
frogley
推荐于2016-03-03 · TA获得超过1854个赞
知道小有建树答主
回答量:1008
采纳率:50%
帮助的人:1113万
展开全部
从30到49可以用通配符来表示,所以可以改成这样:
select * from kuaif_down_rj where (
rjfl like '%,29,%' or
rjfl like '%,[34][0-9],%' or
rjfl like '%,50,%'
) order by time_h desc
你测试下效率有没有提高吧。
随o天
2012-11-06 · TA获得超过3159个赞
知道大有可为答主
回答量:1740
采纳率:71%
帮助的人:2074万
展开全部
如果,29,到,50,位置有一定规律的话,截取它建函数索引吧。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
gy93108083
2012-11-06 · TA获得超过283个赞
知道小有建树答主
回答量:665
采纳率:50%
帮助的人:285万
展开全部
你分开来查询,每个条件写一个查询,最后union 一下,效果应该好点
还有一个方法就是把你这些 like 的条件找出一个最大的范围来,然后把这个范围的的数据放到临时表里去查,这样效果应该最好点
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
micro0369
2012-11-06 · TA获得超过1.2万个赞
知道大有可为答主
回答量:9250
采纳率:85%
帮助的人:4314万
展开全部
你这个肯定没有办法的。

索引不能用,只能全表扫描。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
就爱女流
2012-11-06 · 超过24用户采纳过TA的回答
知道答主
回答量:112
采纳率:0%
帮助的人:67.9万
展开全部
能不能用BETWEEN AND 语句啊,楼主我也没试过,我只是提出来试试。呵呵
BETWEEN '%,29,%' AND rjfl like '%,50,%' ;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 4条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式