Heim > Backend-Entwicklung > PHP-Tutorial > mysql数据库条件批量更新?该如何处理

mysql数据库条件批量更新?该如何处理

WBOY
Freigeben: 2016-06-13 12:55:04
Original
972 Leute haben es durchsucht

mysql数据库条件批量更新?
有表格:
id datetime youliang_procd 
51555 2013-1-18 7:40 173 
51556 2013-1-18 7:43 173 
51557 2013-1-18 7:50 0 
51558 2013-1-18 7:50 0 
51572 2013-1-18 8:03 0 
51573 2013-1-18 8:04 0 
51574 2013-1-18 8:04 0 
51575 2013-1-18 8:05 0 
51576 2013-1-18 8:11 170 
51577 2013-1-18 8:14 170 
51578 2013-1-18 8:14 0 
51579 2013-1-18 8:15 0 
51580 2013-1-18 8:21 167 
51581 2013-1-18 8:24 167 
51582 2013-1-18 8:30 0 
51583 2013-1-18 8:30 0 
51584 2013-1-18 8:30 0

问题:若字段youliang_procd=0,将youliang_procd的值更新为上一条记录该字段的值,更新后结果为:
id datetime youliang_procd 
51555 2013-1-18 7:40 173 
51556 2013-1-18 7:43 173 
51557 2013-1-18 7:50 173 
51558 2013-1-18 7:50 173 
51572 2013-1-18 8:03 173 
51573 2013-1-18 8:04 173 
51574 2013-1-18 8:04 173 
51575 2013-1-18 8:05 173 
51576 2013-1-18 8:11 170 
51577 2013-1-18 8:14 170 
51578 2013-1-18 8:14 170 
51579 2013-1-18 8:15 170 
51580 2013-1-18 8:21 167 
51581 2013-1-18 8:24 167 
51582 2013-1-18 8:30 167 
51583 2013-1-18 8:30 167 
51584 2013-1-18 8:30 167


请问大侠,这条sql语句怎么写(在MySql数据库中),谢谢,在线等!


------解决方案--------------------
这个一定要用SQL完成,如果用代码,更方便吧
------解决方案--------------------
可以用 SQL 直接完成
set @v:=0;<br />
<br />
update tbl_name, (select id, @v:=if(youliang_procd,youliang_procd,@v) as u from tbl_name) t<br />
  set tbl_name.youliang_procd=t.u where tbl_name.id=t.id;
Nach dem Login kopieren

共两条指令,在 php 中要分别执行

其中
set @v:=0 用于声明一个用户变量
select id, @v:=if(youliang_procd,youliang_procd,@v) as u from tbl_name 用于将非空的 youliang_procd 字段值带入下一条
tbl_name 你待操作的表名
------解决方案--------------------
SQL 直接完成了??
------解决方案--------------------
引用:
SQL 直接完成了??
是的!
如果结合 php 来完成,就需要逐条读取、判断、修改
这将是一件十分痛苦的过程
Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage