首页 > 解决方案 > 使用来自同一表列行的值更新表行

问题描述

我想用 column 的值更新 columncreated_at的值updated_at,其中列中的created_at值为0000-00-00

我尝试了以下查询:

UPDATE tbl_message_types a 
SET a.created_at = (
SELECT
    c.updated_at 
FROM
    ( SELECT b.updated_at 
      FROM tbl_message_types b 
      WHERE b.created_at LIKE '%0000-00-00%' 
        AND a.id = c.id ) AS c 
    ) 
    AND a.created_at LIKE '%0000-00-00%';

但查询结果如下:

> 1054 - Unknown column 'a.id' in 'where clause'
> Time: 0.008s

如何修改查询?

标签: mysqlmysql-error-1054

解决方案


我认为您可以以非常简单的方式做到这一点.. 没有任何加入噱头;为什么要坚持一个查询..?选择首先,然后更新。尝试这个..

     select 

        value1 from tableName 

        where columnX like '%someThing%' and columnY = 'SomeValue' as value11;

     update sametableName set someColumn= value11

         where....

推荐阅读