gpt4 book ai didi

mysql - MySQL 更新查询错误 (#1093)

转载 作者:行者123 更新时间:2023-11-28 23:48:04 29 4
gpt4 key购买 nike

我有一个 MySQL 查询如下

UPDATE `bills_receivables` as P 
SET P.days = (
SELECT DATEDIFF(CURDATE(),STR_TO_DATE(date, '%Y-%m-%d')) AS DAYS
FROM `bills_receivables`
) ;

但是当运行这个时会发生错误

#1093 - You can't specify target table 'P' for update in FROM clause 

我犯了什么错误。

最佳答案

您不能在 select 的 from 子句中指定要更新的表,以帮助您像那样选择那些行。 subselect 无论如何都是无效的,因为它会返回多个字段和多行,两者都无效,因为您正在将该查询结果与 P.DAYS 进行比较。

而且我认为您不需要将其弄得那么复杂。这应该足够了:

UPDATE `bills_receivables` as P 
SET P.days = DATEDIFF(CURDATE(),STR_TO_DATE(P.date, '%Y-%m-%d'))

关于mysql - MySQL 更新查询错误 (#1093),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33184479/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com