Rumah >pangkalan data >tutorial mysql >Mengapa Pernyataan INSERT MySQL Saya Dapatkan Ralat 'Operand harus mengandungi 1 lajur'?

Mengapa Pernyataan INSERT MySQL Saya Dapatkan Ralat 'Operand harus mengandungi 1 lajur'?

DDD
DDDasal
2024-12-17 01:59:25596semak imbas

Why Does My MySQL INSERT Statement Get the

Memahami MySQL "Operand should contain 1 column(s)" Ralat

MySQL's error message "Operand should contain 1 column(s)" menunjukkan ralat sintaks yang berkaitan dengan bilangan lajur yang dikembalikan oleh subkueri yang digunakan dalam SELECT pernyataan INSERT klausa.

Dalam kejadian khusus ini, apabila cuba memasukkan rekod ke dalam jadual BAUCAR menggunakan klausa SELECT yang menggabungkan dua jadual (temp_cheques dan BOOK), pengguna mengalami ralat ini. Pertanyaan sedang cuba untuk memasukkan berbilang lajur (nombor, ID dan DENOMINATION) daripada klausa SELECT ke dalam satu lajur (VOUCHER_NUMBER).

Membetulkan Sintaks

Kepada menyelesaikan ralat, pengguna perlu memastikan klausa SELECT mengembalikan hanya satu lajur, yang akan menjadi nilai lajur sasaran dalam INSERT kenyataan. Salah satu cara untuk mencapai ini adalah dengan mengalih keluar kurungan daripada klausa SELECT, mengikut sintaks yang betul yang diserlahkan dalam jawapan yang disediakan:

INSERT INTO VOUCHER (VOUCHER_NUMBER)
SELECT a.number
FROM temp_cheques a, BOOK b
WHERE a.number BETWEEN b.START_NUMBER AND b.START_NUMBER+b.UNITS-1;

Pertimbangan Tambahan

Dalam selain membetulkan sintaks, adalah penting untuk mengambil perhatian amaran mengenai operasi rujukan silang yang mengakibatkan pertanyaan yang berpotensi besar jika kedua-dua BOOK dan temp_cheques mengandungi banyak baris. Untuk membenarkan pertanyaan dijalankan, mungkin perlu menetapkan SQL_BIG_SELECTS = 1 sebelum menjalankannya, seperti yang dinyatakan dalam jawapan.

Atas ialah kandungan terperinci Mengapa Pernyataan INSERT MySQL Saya Dapatkan Ralat 'Operand harus mengandungi 1 lajur'?. 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