MySQL で、あるテーブルから別のテーブルにデータを挿入しようとすると、次のような問題が発生する可能性があります。 「#1136 - 列数が行 1 の値数と一致しません。」というエラーが発生します。これは、INSERT ステートメントで指定された列の数が、取得したデータの列の数と一致しない場合に発生します。
指定されたクエリでは、エラーが発生します。 INSERT ステートメントは、サブクエリの結果を複数の列に挿入しようとします。ただし、サブクエリは 3 つの列 (magazine_subscription_id、subscription_name、magazine_id) のみを取得しますが、INSERT ステートメントでは 4 つの列 (magazine_subscription_id、subscription_name、magazine_id、status) を指定します。
このエラーを解決するには、INSERT ステートメントを変更します。以下の変更されたクエリに見られるように、ステータス列の欠落している値を直接含めるには:
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」リテラルがステータス列の値として直接指定されており、列数が値数と一致することを確認します。
以上が以下にいくつかのタイトル オプションを示し、質問と解決策を質問形式でキャプチャします。 * MySQL INSERT エラー: 「列数が値数と一致しません」 - 修正方法? * \'列数を実行しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。