mysql批量修改字段动态内容的sql语句怎么写
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mysql批量修改字段动态内容的sql语句怎么写相关的知识,希望对你有一定的参考价值。
假设某数据库里面有表a,a表里面有字段b。我的目的是修改字段b的值为数字序号,第一行是1,第二行是2,第n行是n,一直修改完所有记录,这条语句怎么写?
如果表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++;
参考技术A 用函数解决,自己写一个类似oracle sequenec 方法就好了
下面的网址解决了该问题
http://www.2cto.com/database/201202/119528.html 参考技术B 将update语句放到for循环中追问
具体怎么写 求sql语句
追答如果是在数据库上操作,可以用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循环
数据库中我想要批量插入数据SQL语句怎么写。
参考技术A 批量插入不要用循环,直接sql语句就可以了:insert
into
table
(`field`,
`field2`)
values
('val',
'val2'),
('v2',
'v3');
这样就可以了,上面的sql批量了2条,以此类推,中间隔半角逗号即可。
我就晕了,你不会用程序处理啊,用一个array_map然后implode不久可以了吗?
以上是关于mysql批量修改字段动态内容的sql语句怎么写的主要内容,如果未能解决你的问题,请参考以下文章