我想更新列的值 created_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
如何修改查询?
2条答案
按热度按时间a0x5cqrl1#
你的别名不合适,但我要使用连接来表达此更新:
请注意,不清楚您是如何得到
0000-00-00
在你的table上。我正在治疗NULL
我的回答也是这样,不过你可以取消对我的电话COALESCE
如果你不同意。mnemlml82#
我想你可以用更简单的方法来做。。没有任何连接噱头;为什么你要坚持一个单一的查询。。?先选择,然后更新。试试这个。。