场景
更新以AA_开头的数据结果集,使其本身数据变更。
比如说表是这样的
| id | title | content |
|---|---|---|
| 1 | AA_ | HELLO |
| 2 | AA_ | WORLD |
| 3 | AB_ | Zunmx |
| 4 | AC_ | MySQL |
| 5 | AA_ | Lab |
| 6 | BB_ | HaHaHa~ |
我最终想要让这张表编程这样
| id | title | content |
|---|---|---|
| 1 | zunmx_ | HELLO |
| 2 | zunmx_ | WORLD |
| 3 | AB_ | Zunmx |
| 4 | AC_ | MySQL |
| 5 | zunmx_ | Lab |
| 6 | BB_ | HaHaHa~ |
SQL

UPDATE t2t a
inner join(
select id,title from t2t where title like 'AA_%'
)b ON a.id = b.id
set a.title = 'zunmx_'


如果需要借用原来的结果,则需要吧set中的'zunmx_'放到b表中(也就是临时表),正如下段SQL中的期望结果,
比如说需要截取一部分,删除前几个字符,替换操作等等吧。
UPDATE 源表
INNER JOIN (
SELECT
id,
要修改的字段,
期望结果 as new
FROM
源表
WHERE
条件
AND `要修改的字段` LIKE '匹配规则'
) 临时表 ON 原表.id = 临时表.id
SET 源表.要修改的字段 = 临时表.new


评论 0
还没有评论,来说点什么吧。