ホームページ >データベース >mysql チュートリアル >MySQL にデータを挿入するときに発生する「列数が値数と一致しません」エラーを解決するにはどうすればよいですか?
MySQL で、あるテーブルから別のテーブルにデータを挿入する
次のようなクエリを使用して、あるテーブルから別のテーブルにデータを挿入しようとすると、
INSERT INTO mt_magazine_subscription ( magazine_subscription_id, subscription_name, magazine_id, status ) VALUES ( (SELECT magazine_subscription_id, subscription_name, magazine_id FROM tbl_magazine_subscription ORDER BY magazine_subscription_id ASC), '1')
次のエラー メッセージが表示される場合があります。
#1136 - Column count doesn't match value count at row 1
これは、INSERT ステートメントで指定された列の数が、サブクエリで指定された値の数と一致しないためです。
解決策
この問題を解決するには、次のように INSERT...SELECT 構文を使用します。
INSERT INTO mt_magazine_subscription ( magazine_subscription_id, subscription_name, magazine_id, status ) SELECT magazine_subscription_id, subscription_name, magazine_id, '1' FROM tbl_magazine_subscription ORDER BY magazine_subscription_id ASC
この修正されたクエリでは、'1 ' ステータス列の値は SELECT 部分で直接引用されます。 INSERT...SELECT 構文を使用すると、挿入する列を指定し、別のテーブルまたはサブクエリから挿入する値を選択して、列の数と値が一致することを確認します。
以上がMySQL にデータを挿入するときに発生する「列数が値数と一致しません」エラーを解決するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。