数据库查询效率,使用union和or的全表扫描问题

modelsmall 2015-06-19 01:34:02
比如我有一个表T,里面的属性为{id,name,num},id为自增主键
问题1:我要把num =10 、20、30的数据库条目都查出来
select id from t where num=10 or num=20 or num=30

select id from t where num=10
union all
select id from t where num=20
union all
select id from t where num=30
哪种效率高,两种查询方法进行了全表扫描的次数是几次?

问题2:我要把name=‘小明’的条目中的num值查出来相加的“和”,再将这个“和”作为一个新num值在数据库里添加一条新纪录,要怎么写sql语句?
假如数据库中小明的记录有三条值{小明,10} {小明,20} {小明,30},即要将{小明,60}添加进数据库
...全文
417 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
ACMAIN_CHM 2015-06-19
  • 打赏
  • 举报
回复
引用
问题2:我要把name=‘小明’的条目中的num值查出来相加的“和”,再将这个“和”作为一个新num值在数据库里添加一条新纪录,要怎么写sql语句? 假如数据库中小明的记录有三条值{小明,10} {小明,20} {小明,30},即要将{小明,60}添加进数据库
insert into tableX(name,s) select name,sum(num) from oldT group by name
ACMAIN_CHM 2015-06-19
  • 打赏
  • 举报
回复
引用
哪种效率高,两种查询方法进行了全表扫描的次数是几次?
直接使用 explain select .. 看下一两个的实际执行计划。

56,679

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧