ホームページ >データベース >mysql チュートリアル >MySQL にデータを挿入するときに発生する「列数が値数と一致しません」エラーを解決するにはどうすればよいですか?

MySQL にデータを挿入するときに発生する「列数が値数と一致しません」エラーを解決するにはどうすればよいですか?

DDD
DDDオリジナル
2024-10-26 18:24:29484ブラウズ

How to Resolve

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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。