Rumah  >  Artikel  >  pangkalan data  >  Kiraan lajur tidak sepadan dengan kiraan nilai pada baris 1 - Cara menyelesaikan ralat MySQL: nombor lajur tidak sepadan dengan nilai

Kiraan lajur tidak sepadan dengan kiraan nilai pada baris 1 - Cara menyelesaikan ralat MySQL: nombor lajur tidak sepadan dengan nilai

PHPz
PHPzasal
2023-10-05 11:40:542216semak imbas

Column count doesn't match value count at row 1 - 如何解决MySQL报错:列数与值不匹配

Cara menyelesaikan ralat MySQL: bilangan lajur tidak sepadan dengan nilai, contoh kod khusus diperlukan

Dalam proses menggunakan pangkalan data MySQL untuk operasi data , kadangkala anda akan menemui mesej ralat: "Kiraan lajur tidak sepadan dengan kiraan nilai pada baris 1", yang bermaksud bilangan lajur tidak sepadan dengan bilangan nilai. Ralat ini biasanya berlaku apabila memasukkan data dan bilangan lajur yang dinyatakan tidak konsisten dengan bilangan nilai yang dimasukkan. Artikel ini menerangkan penyelesaian khusus dan menyediakan contoh kod.

  1. Semak sama ada bilangan lajur dan bilangan nilai sepadan
    Pertama, kita perlu menyemak sama ada bilangan lajur yang dinyatakan dalam penyata sisipan sepadan dengan bilangan nilai yang dimasukkan. Sebagai contoh, jika 5 lajur dinyatakan dalam penyata sisipan, bilangan nilai yang dimasukkan juga mestilah 5. Jika ia tidak sepadan, ralat akan dicetuskan.

Berikut ialah contoh:

INSERT INTO table_name (column1, column2, column3) VALUES (value1, value2);

Dalam contoh ini, penyata sisipan menentukan 3 lajur (lajur1, lajur2, lajur3), tetapi hanya memasukkan 2 nilai ​​(nilai1, nilai2), jadi ralat "Kiraan lajur tidak sepadan dengan kiraan nilai pada baris 1" akan dicetuskan.

Untuk menyelesaikan masalah ini, kita perlu memastikan bahawa bilangan lajur yang dinyatakan dalam pernyataan sisipan adalah konsisten dengan bilangan nilai yang dimasukkan. Dalam contoh di atas, kita boleh mengubah suai pernyataan sisipan kepada:

INSERT INTO table_name (column1, column2, column3) VALUES (value1, value2, value3);

Ini akan menyelesaikan ralat.

  1. Jika anda memasukkan berbilang baris data
    Jika anda ingin memasukkan berbilang baris data, anda perlu memastikan bahawa bilangan lajur dan nilai dalam setiap baris adalah konsisten. Sebagai contoh, jika 3 lajur dinyatakan dalam penyata sisipan, bilangan nilai yang disisipkan dalam setiap baris mestilah juga 3.

Berikut ialah contoh:

INSERT INTO table_name (column1, column2, column3) VALUES (value1, value2), (value3, value4, value5);

Dalam contoh ini, pernyataan sisipan menentukan 3 lajur (lajur1, lajur2, lajur3), tetapi baris pertama Dua nilai (nilai1, nilai2) dimasukkan dan tiga nilai (nilai3, nilai4, nilai5) dimasukkan dalam baris kedua, jadi ralat "Kiraan lajur tidak sepadan dengan kiraan nilai pada baris 1" akan dicetuskan.

Untuk menyelesaikan masalah ini, kita perlu memastikan bahawa bilangan nilai yang dimasukkan dalam setiap baris adalah konsisten dengan bilangan lajur yang ditentukan. Dalam contoh di atas, kita boleh mengubah suai pernyataan sisipan kepada:

INSERT INTO table_name (column1, column2, column3) VALUES (value1, value2, value3), (value4, value5, value6);

Ini akan menyelesaikan ralat.

  1. Gunakan nilai lalai atau NULL
    Jika lajur tertentu dinyatakan dalam penyata sisipan tetapi tiada nilai sepadan disediakan, anda boleh mempertimbangkan untuk menggunakan nilai lalai atau NULL untuk menyelesaikan ralat. Untuk lajur dengan nilai lalai, jika penyata sisipan tidak menyatakan nilai, nilai lalai akan digunakan untuk lajur yang membenarkan NULL, NULL boleh dinyatakan secara eksplisit dalam pernyataan sisipan.

Berikut ialah contoh:

INSERT INTO table_name (column1, column2, column3) VALUES (value1, DEFAULT, value3);

Dalam contoh ini, penyata sisipan menentukan 3 lajur (lajur1, lajur2, lajur3), tetapi lajur kedua No nilai khusus disediakan, tetapi kata kunci DEFAULT digunakan untuk menggunakan nilai lalai. Dengan cara ini anda boleh mengelakkan ralat.

  1. Gunakan pernyataan INSERT INTO SELECT
    Jika anda ingin memilih data daripada jadual lain untuk disisipkan, dan bilangan lajur dan nilai tidak konsisten, anda boleh pertimbangkan untuk menggunakan kenyataan INSERT INTO SELECT.

Berikut ialah contoh:

INSERT INTO table_name (column1, column2) SELECT column1, column2 FROM other_table;

Dalam contoh ini, penyata sisipan menentukan 2 lajur (lajur1, lajur2), tetapi data yang dipilih datang daripada other_table Jadual mengandungi lebih banyak lajur. Dengan menggunakan pernyataan INSERT INTO SELECT, kita boleh memilih lajur yang diperlukan untuk sisipan, mengelakkan masalah ketidakkonsistenan antara bilangan lajur dan bilangan nilai.

Ringkasan:
Apabila menghadapi ralat MySQL "Column count doesn't match value count at row 1", kita boleh menyelesaikan masalah tersebut melalui kaedah berikut:

#🎜🎜 #
    Semak sama ada bilangan lajur dan bilangan nilai sepadan;
  • Pastikan bahawa apabila memasukkan berbilang baris data, bilangan lajur dan nilai dalam setiap baris adalah konsisten; ;
  • Gunakan Nilai lalai atau NULL untuk mengisi nilai yang tiada;
  • Gunakan pernyataan INSERT INTO SELECT untuk memilih lajur yang diperlukan untuk sisipan.
Di atas ialah beberapa kaedah untuk menyelesaikan ralat MySQL "Kiraan lajur tidak sepadan dengan kiraan nilai pada baris 1", dan berikan contoh kod khusus. Harap ini membantu!

Atas ialah kandungan terperinci Kiraan lajur tidak sepadan dengan kiraan nilai pada baris 1 - Cara menyelesaikan ralat MySQL: nombor lajur tidak sepadan dengan nilai. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn