1. 程式人生 > >sql的update語句 批量更新某欄位

sql的update語句 批量更新某欄位

Mysql:

1 有時候要實現欄位的批量替換

update 表名 set 欄位A = replace(欄位A ,"png","jpg" );

2 批量拼接字串到某欄位

update 表名 set 欄位A = CONCAT( 欄位A  , "xxx"  );

update 表名 set 欄位A = CONCAT( "yyy" , 欄位A  , "xxx"  );

3 批量擷取某欄位,扔掉開始的4個字元

update 表名 set 欄位A=SUBSTR(欄位A,4);

4 批量擷取某欄位,保留結尾的3個字元
update 表名 set 欄位A=SUBSTR(欄位A,-3);

5 批量擷取某欄位,去掉結尾的2個字元

update 表名 set 欄位A=SUBSTR(欄位A,1,LENGTH(欄位A)-2);

更詳細的方法請參考MYSQL的SUBSTR函式

------------update+select----------------------------------以下是網際網路收集,用的時候再仔細驗證

/*
  多表關聯update的時候,記得要加exists()條件,否則不滿足條件的記錄被update稱NULL:
  比如:stu表存在,但stu1表不存在的資料,對應的欄位會被updat成NULL;
*/

6 多表關聯update單欄位
update stu t set t.NAME = (select t1.NAME from stu1 t1 where t1.ID = t.ID)
where exists(select 1 from stu1 t2 where t2.ID = t.ID);

7 多表關聯update多欄位
update stu t set (t.NAME, t.SEX) = (select t1.NAME, t1.SEX from stu1 t1 where t1.ID = t.ID)
where exists(select 1 from stu1 t2 where t2.ID = t.ID);

UPDATE table1 alias
SET (column_name,column_name ) = (
SELECT (column_name, column_name)
FROM table2
WHERE column_name = alias.column_name)
WHERE column_name = VALUE