为了账号安全,请及时绑定邮箱和手机立即绑定

如下,假设某数据库里面有表a,a表里面有字段b

如下,假设某数据库里面有表a,a表里面有字段b

慕尼黑8549860 2023-03-05 19:19:50
我的目的是修改字段b的值为数字序号,第一行是1,第二行是2,第n行是n,一直修改完所有记录,这条语句怎么写?
查看完整描述

2 回答

?
翻翻过去那场雪

TA贡献2065条经验 获得超13个赞

如果表a有自增长ID的话就很好办了 update a set b = id 如果没的话写一个PHP的小程序就好
<?php
$con = mysql_connect("localhost","root","password") or die("数据库连接失败".mysql_error());//连接数据库
mysql_select_db("test",$con) or die ("数据库选择失败".mysql_error());
mysql_query("set names gbk");//设置编码格式
$a = mysql_query("select * from a");
$n = 1;
while($b = mysql_fetch_array($a))
{
mysql_query("update a set b = "."'".$n."'"." where id = ".$b['id']); //where 后面的条件语句可以是任意该表内字段
$n++;
}

查看完整回答
反对 回复 2023-03-08
?
翻阅古今

TA贡献1780条经验 获得超5个赞

将update语句放到for循环中

如果是在数据库上操作,可以用T-SQL处理:
eg:

表:ttt   (id )有7条记录,
id:
1
2
3
4
5
6
7

declare @i int 
set @i=7
while @i>0 begin 
--insert into ttt values(@i)
update ttt set id=@i+1 where id=@i 
print @i
set @i=@i-1
end
go
一定要倒序循环
结果:
id:
2
3
4
5
6
7
8

这样写:update ttt set id = id +1 where id in (select id from ttt) 也行
程序中在写sql 的地方
可以套用for循环


查看完整回答
反对 回复 2023-03-08
  • 2 回答
  • 0 关注
  • 53 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信