Memasukkan Data dari Satu Jadual ke Jadual Lain dalam MySQL
Apabila cuba memasukkan data dari satu jadual ke jadual lain menggunakan pertanyaan seperti:
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')
anda mungkin menghadapi mesej ralat:
#1136 - Column count doesn't match value count at row 1
Ini kerana bilangan lajur yang dinyatakan dalam pernyataan INSERT tidak sepadan dengan bilangan nilai yang disediakan dalam subkueri.
Penyelesaian
Untuk menyelesaikan isu ini, gunakan sintaks INSERT...SELECT, seperti berikut:
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
Dalam pertanyaan yang diperbetulkan ini, '1 nilai ' untuk lajur status dipetik terus dalam bahagian SELECT. Dengan menggunakan sintaks INSERT...SELECT, anda menentukan lajur untuk disisipkan dan memilih nilai untuk disisipkan daripada jadual atau subkueri lain, memastikan bilangan lajur dan nilai sepadan.
Atas ialah kandungan terperinci Bagaimana untuk Menyelesaikan Ralat \'Kiraan lajur tidak sepadan dengan kiraan nilai\' Semasa Memasukkan Data dalam MySQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!