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函數

 

特別的思路,可以替換復雜規則的字符(一定要看)
1、將目標數據,借助navicat等工具,可以導出為update sql

 

2、既然是update純文本了,就可以用notepad++記事本工具,批量替換了

3、替換時可以用正則匹配替換,正則匹配詳見這篇文章  正則匹配html標簽_匹配兩字符串之間內容_匹配image標簽

 

 

------------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
————————————————
版權聲明:本文為CSDN博主「yfx000」的原創文章,遵循CC 4.0 BY-SA版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/yfx000/article/details/83409683

=============================

update `user` set sex = '1';

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM