私はID列(ArticleID)を持つテーブルを持っています。私はテーブルの最後の行を選択し、特定の列(ArticleImage)に値を挿入したいと思います。私はすでに価値があるので、私はそれを照会する必要はありません。 SQL文のどこにこの値を置くのですか?INSERT INTO SELECT文の構文
INSERT INTO EasyDNNNews (ArticleImage)
SELECT TOP 1 FROM EasyDNNNews
ORDER BY ArticleID DESC
私はID列(ArticleID)を持つテーブルを持っています。私はテーブルの最後の行を選択し、特定の列(ArticleImage)に値を挿入したいと思います。私はすでに価値があるので、私はそれを照会する必要はありません。 SQL文のどこにこの値を置くのですか?INSERT INTO SELECT文の構文
INSERT INTO EasyDNNNews (ArticleImage)
SELECT TOP 1 FROM EasyDNNNews
ORDER BY ArticleID DESC
コメント欄には、INSERTではなくUPDATE文が必要です。 UPDATEは、すでに存在するレコードを更新します。ここでは、INSERTがブランド全体の新しいレコードを作成します。
ソートに基づいて特定のレコードを更新する必要があるため、あなたはちょうどUPDATE <table> SET <field>='Somevalue';
より少し複雑です。 SELECT TOP 1..
クエリで正しい方向に向かっていました。サブクエリが最大ArticleID
をフェッチする
UPDATE EasyDNNNews
SET ArticleImage = 'YOURVALUE'
WHERE ArticleID = (SELECT TOP 1 ArticleID FROM EasyDNNNews ORDER BY ArticleID Desc)`
。次に、外部UPDATE文は、そのArticleIDのレコードを更新し、ArticleImageを設定したい値に設定します。
はうまくいった。ありがとう! –
あなたは、サブクエリまたは更新可能なCTEでこれを行うことができます。
WITH toupdate as (
SELECT TOP 1 d.*
FROM EasyDNNNews d
ORDER BY ArticleID DESC
)
UPDATE toupdate
SET ArticleImage = ??;
私は更新可能なCTEも知らなかった。それはとても便利です。 – JNevill
ので、あなたは**あなたがしたい、**新しい行を挿入する必要はありません**更新** 1(ヒントあなたの答えは太字で表示されます) – Lamak
どのようなSQL - MySQL、MS Access、SQL Server?製品によっては回答が異なる場合があります – dbmitch
@Lamk ...あなたは正しいです。私はレコードを更新しています。ありがとう! –