Rumah >pangkalan data >tutorial mysql >Mengapa Pertanyaan INSERT MySQL Saya Gagal dengan Klausa WHERE?
Pertanyaan INSERT MySQL bercanggah dengan klausa WHERE
Apabila cuba memasukkan data ke dalam pangkalan data MySQL menggunakan pertanyaan yang serupa dengan:
INSERT INTO Users( weight, desiredWeight ) VALUES ( 160, 145 ) WHERE id = 1;
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:
INSERT INTO Users(id, weight, desiredWeight) VALUES(1, 160, 145);
Kemas kini baris sedia ada
Untuk mengubah suai nilai dalam baris sedia ada, pernyataan KEMASKINI harus digunakan:
UPDATE Users SET weight = 160, desiredWeight = 145 WHERE id = 1;
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:
INSERT INTO Users (id, weight, desiredWeight) VALUES(1, 160, 145) ON DUPLICATE KEY UPDATE weight=160, desiredWeight=145
Gunakan lajur autokenaikan
Jika lajur id dalam jadual ditetapkan kepada kenaikan automatik, anda boleh meninggalkannya daripada pertanyaan INSERT dan biarkan MySQL mengendalikan kenaikan:
INSERT INTO Users SET weight=160, desiredWeight=145
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!