mysql更新子查询的某一列值,sql语句写法
程序员文章站
2022-05-09 15:24:00
...
首先我依据子查询语句查询出数据:
SELECT
a.id,
a.tag_en,
a.tag_value_analysis_type,
a.tag_project_id
FROM
t_smart_tag_meta a
INNER JOIN tags_and_attributes_relations b ON a.id = b.tag_id
WHERE
b.tag_attributes_category_id = 4
AND b.tag_attributes_id = 206
然后需要对查询出的tag_project_id这一列把值全部改成23,直接用update table set XXX where报错,可以用以下语句
UPDATE t_smart_tag_meta a,
(
SELECT
a.id,
a.tag_en,
a.tag_value_analysis_type,
a.tag_project_id
FROM
t_smart_tag_meta a
INNER JOIN tags_and_attributes_relations b ON a.id = b.tag_id
WHERE
b.tag_attributes_category_id = 4
AND b.tag_attributes_id = 206
) c
SET a.tag_project_id = 23
WHERE
a.tag_en = c.tag_en;
修改后结果如下:
可以看到子查询出来的列已经全部重新赋值成23了。
下一篇: 计算两个日期之间的时间段秒数差