0

「company」テーブルにある「sellingDate」フィールドをインクリメントしようとしています。

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

このクエリでは、次のようなエラーが表示されます。

エラー コード: 1093
FROM 句で更新対象のテーブル 'company' を指定することはできません

ここで何が間違っていますか?

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 に答える