需求:对方我公司的产品是一路捞导航网站。主页图片刷新的有点慢,就想把原来只用一个域名来刷新图片的过程改成四个域名来刷新,四个并行刷新可以提高速度,交给我操作数据库的任务就是:修改表中的关于图片的字段的内容,
我的任务是要把m后面的0这个数字平均改成0,1,2,3这样就把一个域名改成了四个,具体怎么实现我不太清楚。
操作步骤:
1,利用拼接和截取以及round对m后的数字取随机数,
update TB_PAD_INFO_INDEX t
set t.MAINIMAGEURL=substr(t.MAINIMAGEURL,1,8)||round(dbms_random.value(0,3),0)||substr(t.MAINIMAGEURL,10,100);
2,因为是随机数,肯定到不到完全平均的效果,所以先查看现在分配的结果,
select substr(t.MAINIMAGEURL,9,1),count(*) from tb_pad_info_index t
group by substr(t.MAINIMAGEURL,9,1);
1 453
3 246
0 214
2 447
3,根据上面的结果,把m1给m0分配120个,再把m2给m3分配100,借助伪列rownum:
update TB_PAD_INFO_INDEX t
set t.MAINIMAGEURL=substr( t.MAINIMAGEURL,1,8)||0||substr( t.MAINIMAGEURL,10,100)
where substr( t.MAINIMAGEURL,9,2)='m1' and rownum<=120;
update TB_PAD_INFO_INDEX t
set t.MAINIMAGEURL=substr( t.MAINIMAGEURL,1,8)||3||substr( t.MAINIMAGEURL,10,100)
where substr( t.MAINIMAGEURL,9,2)='m2' and rownum<=100;
反正目的就是尽可能的平均一下。
再次查看分配结果:
select substr(t.MAINIMAGEURL,9,1),count(*) from tb_pad_info_index t
group by substr(t.MAINIMAGEURL,9,1);
1 333
3 346
0 334
2 345
其实如果数据量不是很大的话,可以借助excl工具,和UE编辑器,以及plsql\developer 完成任务。
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/29654823/viewspace-1600232/
,如需转载,请注明出处,否则将追究法律责任。