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