批量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]