从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
你测试下效率有没有提高吧。
如果,29,到,50,位置有一定规律的话,截取它建函数索引吧。
你分开来查询,每个条件写一个查询,最后union 一下,效果应该好点
还有一个方法就是把你这些 like 的条件找出一个最大的范围来,然后把这个范围的的数据放到临时表里去查,这样效果应该最好点
你这个肯定没有办法的。
索引不能用,只能全表扫描。
能不能用BETWEEN AND 语句啊,楼主我也没试过,我只是提出来试试。呵呵
BETWEEN '%,29,%' AND rjfl like '%,50,%' ;