0

我正在尝试增加“公司”表中的“销售日期”字段。

UPDATE company 
   SET sellingDate = ((SELECT DATE_ADD((SELECT sellingDate 
                                          FROM company 
                                         WHERE cid = '35'), INTERVAL 1 DAY))) 
 WHERE cid = '35';

这个查询给了我一个错误说:

错误代码:1093
您不能在 FROM 子句中指定目标表“公司”进行更新

我在这里做错了什么?

4

4 回答 4

2

采用:

UPDATE company 
   SET sellingDate = DATE_ADD(sellingDate, INTERVAL 1 DAY)
 WHERE cid = '35'

MySQL 不允许在针对同一个表的 UPDATE 语句中使用子查询,但对于本示例,子查询是不必要的。由于某些奇怪的原因,UPDATE 语句中的自联接不会返回 1093 错误,尽管它是相同的逻辑。

于 2011-01-26T05:55:43.410 回答
0

尝试:

UPDATE company SET sellingDate = DATE_ADD(sellingDate, INTERVAL 1 DAY) WHERE cid = '35';
于 2011-01-26T05:56:11.573 回答
0

您不能使用正在更新的同一个表中的子查询但是您可以通过此查询实现相同的目的

UPDATE company SET sellingDate=DATE_ADD(sellingDate, INTERVAL 1 DAY) WHERE cid = '35';
于 2011-01-26T05:56:51.743 回答
0

为什么需要使用嵌套查询来增加该字段?

UPDATE company SET sellingDate = DATE_ADD(sellingDate, INTERVAL 1 DAY) WHERE cid = '35';
于 2011-01-26T05:59:23.300 回答