2017-11-26 15 views
-1

最後に挿入したレコードを更新し、そのカラムにcampaign_idの値を割り当てようとしています。id(同じレコード)の値です。 私はこのクエリを思い付いた:selectステートメントを使用してMySQLテーブルのレコードを更新する

UPDATE campaigns 
SET campaign_id= (select id order by id desc LIMIT 1) 
WHERE id = (select id order by id desc LIMIT 1) 

が、私はそれがテーブル全体を更新し理解することはできません何らかの理由で、なぜそれがありますか?

答えて

0

私は次のようにあなたがするつもりいたものだと思う:

UPDATE campaigns 
SET campaign_id = id 
WHERE id = (SELECT id FROM campaigns ORDER BY DESC LIMIT 1); 

これは論理的に正しいことかどうかは、最大idのレコードが実際に最新の記録であるかどうかに依存します。私はそれが当てはまるとは想像できませんが、おそらく上記のサブクエリのロジックをこの可能性をカバーするように変更することができます。

+0

でも、有用なコメントはテーブルのすべてのレコードを更新しますが、 –

+0

@yarivbarあなたの質問を編集し、サンプルデータと現在の/予想される出力を表示してください。この回答はあなたが私たちに与えた情報に基づいて私には正しいようです。 –

関連する問題