需求:
成都一家集口碑和实力的网站建设服务商,拥有专业的企业建站团队和靠谱的建站技术,10年企业及个人网站建设经验 ,为成都上千客户提供网页设计制作,网站开发,企业网站制作建设等服务,包括成都营销型网站建设,成都品牌网站建设,同时也为不同行业的客户提供做网站、网站制作的服务,包括成都电商型网站制作建设,装修行业网站制作建设,传统机械行业网站建设,传统农业行业网站制作建设。在成都做网站,选网站制作建设服务商就选成都创新互联。
如何将多条update语句合并为一条update语句:
如,update table1 set col='2012' haha='hello' where id='2014001'
update table1 set col='1009' haha='nihao' where id='2014003'
上面 这两行 执行之后,每一条需要5秒,总共需要10秒才能执行完.
如何合并为一条?
在网上找了好久,总结了一个相对简单的语句(有些语句是函数语句,有点晕),如下:
update table1 set col=(case id
when '2014001' then '2012'
when '2014003' then '1009' end),
haha=(case id
when '2014001' then 'hello'
when '2014003' then 'nihao' end)
where id in('2014001','2014003')
改成这个之后,还是需要5秒,但是,它只执行了一次,所以只需要5秒
MySQL InnoDB 表数据页或者二级索引页(简称数据页或者索引页)的合并与分裂对 InnoDB 表整体性能影响很大;数据页的这类操作越多,对 InnoDB 表数据写入的影响越大。
MySQL 提供了一个数据页合并临界值(MERGE_THRESHOLD),在某些场景下,可以人为介入,减少数据页的合并与分裂。
在 InnoDB 表里,每个数据页默认16K 大小,默认 MERGE_THRESHOLD 值为 50,取值范围从 1 到 50,默认值即是最大值。也就是当页面记录数占比小于 50% 时,MySQL 会把这页和相邻的页面进行合并,保证数据页的紧凑,避免太多浪费。
您好.
以前有高人写过类似的:
select id,group_concat(re_id order by re_id separator ",") as re_id
from tablename
group by id
方法2:
select group_concat(list_name) from aa_list
如果还有问题,可以继续追问,感谢。
在你第二个查询的基础上进行行转列,如果类型是动态的建议封装
存储过程
。在外层套一个查询,用
max(case
when
then
...
end
)
as
'列名'...这种方士可以实现。
您好.
以前有高人写过类似的:
select id,group_concat(re_id order by re_id separator ",") as re_id
from tablename
group by id
方法2:
select group_concat(list_name) from aa_list
如果还有问题,可以继续追问,感谢。
您好.
以前有高人写过类似的:
select id,group_concat(re_id order by re_id separator ",") as re_id
from tablename
group by id
方法2:
select group_concat(list_name) from aa_list
如果还有问题,可以继续追问,感谢。