SQL数据库查询中满足任何一个条件,使用OR还是多条语句效率高?
SELECT*FROMTEST_ONEwherename='@info'oraddress='@info'orage='@info'还是么次执行SELECT*FROMTE...
SELECT * FROM TEST_ONE where name='@info' or address='@info' or age='@info'
还是么次执行
SELECT * FROM TEST_ONE where name='@info'
SELECT * FROM TEST_ONE where address='@info'
SELECT * FROM TEST_ONE where age='@info' 展开
还是么次执行
SELECT * FROM TEST_ONE where name='@info'
SELECT * FROM TEST_ONE where address='@info'
SELECT * FROM TEST_ONE where age='@info' 展开
5个回答
展开全部
三条语句不仅效率低
并且还有一个缺点:冗余的数据
因为可能有一行, 既满足 name='@info',又满足 address='@info' 。
这两个语句会把这同一行都取出一份, 还需要自己手工去排除掉。
所以还是推荐前面的用OR连接的语句。
并且还有一个缺点:冗余的数据
因为可能有一行, 既满足 name='@info',又满足 address='@info' 。
这两个语句会把这同一行都取出一份, 还需要自己手工去排除掉。
所以还是推荐前面的用OR连接的语句。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
SQL中可以以多个AND或OR,当条件混乱时,可以使用括号。
如a and (b or c)这样的。
补充语句可以修改为:
sql="select top 16 * from tb_goods where id not in (select top "+(nowPage*16)+" id from tb_goods where classes='"+classes2+"' and price<=500 order by id asc)and classes='"+classes2+"' and price<=500 order by id asc";
如a and (b or c)这样的。
补充语句可以修改为:
sql="select top 16 * from tb_goods where id not in (select top "+(nowPage*16)+" id from tb_goods where classes='"+classes2+"' and price<=500 order by id asc)and classes='"+classes2+"' and price<=500 order by id asc";
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
执行一条语句, 比执行3条语句.
显然是 一句 效率高.
除非你是 3个 查询条件都一样, 只是 参数不一样.
那么 可能 3句 UNION ALL 的时候, 速度会比 IN 快一点。
显然是 一句 效率高.
除非你是 3个 查询条件都一样, 只是 参数不一样.
那么 可能 3句 UNION ALL 的时候, 速度会比 IN 快一点。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
用or ,因为用or执行完数据直接全出来,如果你用分次的话你还得对数据进行处理,排序,这样肯定慢
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询