sql批量操作
SQl:
1,在某一欄位後批量增加內容:UPDATE 表名 SET 欄位= CONCAT(欄位,'要增加的內容')
例:UPDATE b8_niuniu_permission SET game_ids= CONCAT(game_ids,',3')
(或者後面可以加where條件)
2,批量修改某一欄位內容:UPDATE 表名SET 欄位='修改成的內容'
例:UPDATE b8_niuniu_permission SET game_ids='1,2,3,4'
(或者後面可以加where條件)
3,把backupfile表裡url的欄位內容為http://16hg.cn的全部改為http://16hg.net(替換)。
例:update backupfile set url=REPLACE(url,'http://16hg.cn','http://16hg.net')
4,根據條件增加欄位的內容(替換),如把file_number=1的記錄的logical_name欄位的內容前面加上tmp,後面加上end。
例:update backupfile set logical_name=REPLACE(logical_name,logical_name,'tmp'+logical_name+' end ') where file_number=1
5,根據條件去掉指定記錄的前面2個字元(替換)。
update backupfile set logical_name=REPLACE(logical_name,logical_name,SUBSTRING(logical_name,3,len(logical_name)-2)) where file_number=1
6,根據條件去掉指定記錄的後面4個字元(替換)。
update backupfile set logical_name=REPLACE(logical_name,logical_name,SUBSTRING(logical_name,1,len(logical_name)-4)) where file_number=2
如有不清楚的可以先用select語句驗證是否達成自己想要的效果再進行替換:
SELECT REPLACE(替換欄位,'原內容','新內容') from 表名;
update 表名 set 替換欄位=(REPLACE(替換欄位,'原內容','新內容'))
7,批量刪除:
DELETE FROM MyTable WHERE ID IN (1,2);
8,批量插入:
第一種方法:
INSERT INTO MyTable(ID,NAME) VALUES(1,'123');
INSERT INTO MyTable(ID,NAME) VALUES(2,'456');
INSERT INTO MyTable(ID,NAME) VALUES(3,'789');
第二種方法,使用UNION ALL來進行插入操作:
INSERT INTO MyTable(ID,NAME)
SELECT 4,'000'
UNION ALL
SELECT 5,'001'
UNION ALL
SELECT 6,'002' ;
據說要比第一種要快!
第三種方法
INSERT INTO MyTable(ID,NAME) VALUES(7,'003'),(8,'004'),(9,'005');
9.sql過濾空值:
。。。。。where 欄位 is not null