5

このクエリでは、最新の投稿されたレコードを更新したいのですが、このクエリが機能していません。理由を教えてください???

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

update beevers_products set product_name='my_product_name' where posted_date in (SELECT posted_date FROM `beevers_products` order by posted_date asc limit 1)
4

5 に答える 5

1

これをチェックして:

UPDATE beevers_products 
SET product_name = 'my_product_name' 
WHERE posted_date = (SELECT posted_date 
                     FROM beevers_products
                     ORDER BY posted_date DESC limit 1)
于 2013-06-06T14:18:42.790 に答える
0

これを試して:

update beevers_products as t1, 
(select posted_date from beevers_products order by posted_date asc limit 1) as t2
set t1.product_name = 'my_product_name'
where t1.posted_date in (t2.posted_date);

必要なレコードにエイリアスを指定し、where句で使用する必要があります。

于 2013-02-19T10:14:28.173 に答える
0

これを試して

UPDATE beevers_products 
SET product_name = 'my_product_name'  
OUTPUT DELETED.product_name
WHERE posted_date in (SELECT posted_date 
                      FROM `beevers_products` 
                      order by posted_date asc 
                      limit 1)

出力についてもっと読む

これを確認してください-> 1つのクエリでテーブルから更新/選択できますか?
それはあなたを助けるかもしれません

于 2013-02-19T10:15:03.663 に答える
0
INSERT INTO beevers_products (id, product_name)
SELECT id, 'my_product_name'
FROM beevers_products
ORDER BY posted_date ASC
LIMIT 1
ON DUPLICATE KEY UPDATE product_name = VALUES(product_name)

使い方を学ぶと、INSERT ... SELECT ... ON DUPLICATE非常に多くの可能性が浮かび上がりました。あなたが望むときはいつでも、私はちょっと興味がありposted_data ASCますposted_data DESC

于 2013-02-19T11:33:04.237 に答える
0

クエリには CI Active Record クラスを使用することをお勧めします。

http://ellislab.com/codeigniter/user-guide/database/active_record.html

于 2013-02-19T10:10:42.753 に答える