Pertanyaan INSERT MySQL bercanggah dengan klausa WHERE
Apabila cuba memasukkan data ke dalam pangkalan data MySQL menggunakan pertanyaan yang serupa dengan:
<code class="language-sql">INSERT INTO Users( weight, desiredWeight ) VALUES ( 160, 145 ) WHERE id = 1;</code>
Anda mungkin menerima mesej ralat jika klausa WHERE hadir. Ini kerana sintaks INSERT MySQL tidak menyokong klausa WHERE.
Barisan baharu
Jika niatnya adalah untuk mencipta baris baharu dengan ID yang ditentukan, pertanyaan yang betul akan kelihatan seperti ini:
<code class="language-sql">INSERT INTO Users(id, weight, desiredWeight) VALUES(1, 160, 145);</code>
Kemas kini baris sedia ada
Untuk mengubah suai nilai dalam baris sedia ada, pernyataan KEMASKINI harus digunakan:
<code class="language-sql">UPDATE Users SET weight = 160, desiredWeight = 145 WHERE id = 1;</code>
MASUKKAN ... PADA KUNCI DUPLICATE
Sebagai alternatif, anda boleh menggunakan sintaks INSERT ... ON DUPLICATE KEY untuk memasukkan atau mengemas kini baris berdasarkan kunci unik atau utama:
<code class="language-sql">INSERT INTO Users (id, weight, desiredWeight) VALUES(1, 160, 145) ON DUPLICATE KEY UPDATE weight=160, desiredWeight=145</code>
Gunakan lajur autokenaikan
Jika lajur id dalam jadual ditetapkan kepada kenaikan automatik, anda boleh meninggalkannya daripada pertanyaan INSERT dan biarkan MySQL mengendalikan kenaikan:
<code class="language-sql">INSERT INTO Users SET weight=160, desiredWeight=145</code>
Atas ialah kandungan terperinci Mengapa Pertanyaan INSERT MySQL Saya Gagal dengan Klausa WHERE?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!