変更された列値を使用した INSERT と SELECT の組み合わせ
この例では、courses
ステートメントを使用して SELECT
テーブルにデータを挿入すると同時に、ソース テーブルから取得した値に関係なく、gid
列に特定の値を割り当てる方法を示します。
元のクエリは、courses
テーブルからデータをコピーしようとします:
<code class="language-sql">INSERT INTO courses (name, location, gid) SELECT name, location, gid FROM courses WHERE cid = $cid</code>
問題は、挿入プロセス中に gid
値を変更できるかどうかです。
解決策
はい、これは実現可能です。 重要なのは、gid
ステートメントの SELECT
列を定数値または別の式に置き換えることです。 次のクエリはこれを示しています:
<code class="language-sql">INSERT INTO courses (name, location, gid) SELECT name, location, 1 -- '1' is the new gid value FROM courses WHERE cid = 2 -- Example condition; replace '2' with your desired cid</code>
この変更されたクエリでは、gid
テーブルから選択された行の INSERT
値に関係なく、1
ステートメントの gid
列は常に値 courses
を受け取ります。 1
を、gid
列のデータ型と互換性のある値を生成する適切な定数または式に置き換えることができます。 WHERE
句はソース データをフィルタリングし、関連する行のみが挿入に使用されるようにします。
以上がSELECT を使用してテーブルに INSERT し、1 つの列に異なる値を割り当てることはできますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。