欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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;

修改后结果如下:

mysql更新子查询的某一列值,sql语句写法

可以看到子查询出来的列已经全部重新赋值成23了。

相关标签: MySQL