批量sql语句
批量插入不要用循环,直接sql语句就可以了:
insert
into
table
(`field`,
`field2`)
values
('val',
'val2'),
('v2',
'v3');
这样就可以了,上面的sql批量了2条,以此类推,中间隔半角逗号即可。
我就晕了,你不会用程序处理啊,用一个array_map然后implode不久可以了吗?
⑵ SQL 批量更新语句
1.使用存储过程
2.在程序代码里逐条循环执行
这里给出一种更高效、简洁的做法,批量更新SQL ,一句SQL就可以替代麻烦的循环过程,有MS SQLServer、Oracle、DB2下的写法
--关键点:t4和t1是同一个table,primary key肯定也是同一个,
--并以它进行关联,这样在 select语句里即可引用到要update的表的fields
UPDATETable1ASt1
SET(Field1,Field2)=(SELECTField21,Field22
FROMTable2t2
INNERJOINTable3t3
ONt3.Field31=t2.Field23
INNERJOINTable4t4
ONt3.Field32=t4.Filed41
WHEREt2.Field24>=''
ANDt1.fId=t4.fId);
----------------------------MSSQLServer-----------------------------------
UPDATEt1
SETField1=Field21,Field2=Field22
FROMTable2t2
INNERJOINTable3t3
ONt3.Field31=t2.Field23
INNERJOINTable4t4
ONt3.Field32=t4.Filed41
WHERE((t2.Field24>='')
ANDt1.fId=t4.fId);
⑶ sql语句进行批量修改
修改语句 update hstlst set h_hmedir='e:\'+SUBSTRING (h_hmedir, 4, len(h_hmedir)-3)where left(h_hmedir,3)='d:\'涉及知识:Update更改表中的现有数据SET指定要更新的列或变量名称的列表SUBSTRING返回字符、binary、text 或 image 表达式的一部分语法SUBSTRING ( expression , start , length )expression是字符串、二进制字符串、text、image、列或包含列的表达式。不要使用包含聚合函数的表达式。start是一个整数,指定子串的开始位置。length是一个整数,指定子串的长度(要返回的字符数或字节数)。LEFT返回从字符串左边开始指定个数的字符。语法LEFT ( character_expression , integer_expression ) 参数character_expression字符或二进制数据表达式。character_expression 可以是常量、变量或列。character_expression 必须是可以隐式地转换为 varchar 的数据类型。否则,请使用 CAST 函数显式转换 character_expression。integer_expression是正整数。如果 integer_expression 为负,则返回空字符串。返回类型varchar爱上网iSuNet论坛谢谢您的支持,转载请带本帖地址:[url]http://www.ningood.com/viewthread.php?tid=5638&fromuid=0[/url]