1. 程式人生 > >sql批量操作

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