MySQL で、あるテーブルから別のテーブルにデータを転送する方法
あるテーブルから別のテーブルにデータを転送するタスクに直面した場合、 INSERT ステートメントが便利です。特定のケースでは、クエリでエラーが発生しました:
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')
エラー メッセージは、INSERT ステートメントの列の数が指定された値の数と一致しないことを示しています。ここでの問題は、サブクエリの結果を単一の値として挿入しようとしているということですが、これは不可能です。
解決策: INSERT...SELECT 構文
これに対処するには、あるテーブルから別のテーブルにデータを直接挿入できる 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
この修正されたクエリでは:
これにより、修正すると、クエリは指定されたステータス値で tbl_magazine_subscription から mt_magazine_subscription にデータを正常に挿入するはずです。
以上がMySQL テーブル間でデータを転送するときに発生する「列数の不一致」エラーを修正する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。