Rumah >pangkalan data >tutorial mysql >Mengapa Pertanyaan INSERT MySQL Saya Gagal Apabila Menggunakan Klausa WHERE?
Menyelesaikan masalah Pernyataan INSERT MySQL dan Klausa WHERE
PenyataanMySQL INSERT
tidak menyokong klausa WHERE
. Percubaan untuk menggunakan satu akan mengakibatkan ralat. Klausa WHERE
digunakan untuk menapis data dalam pernyataan SELECT
, UPDATE
dan DELETE
, bukan untuk sisipan.
Mari kita periksa senario biasa:
<code class="language-sql">INSERT INTO Users (weight, desiredWeight) VALUES (160, 145) WHERE id = 1;</code>
Pertanyaan ini bertujuan untuk menambah baris baharu hanya jika baris dengan id = 1
wujud, mengemas kini baris itu dengan berkesan. Ini adalah penggunaan INSERT
yang salah.
Pendekatan Betul:
Penyelesaian bergantung pada hasil yang anda inginkan:
id
, gunakan:<code class="language-sql">INSERT INTO Users (id, weight, desiredWeight) VALUES (1, 160, 145);</code>
UPDATE
:<code class="language-sql">UPDATE Users SET weight = 160, desiredWeight = 145 WHERE id = 1;</code>
INSERT ... ON DUPLICATE KEY UPDATE
:<code class="language-sql">INSERT INTO Users (id, weight, desiredWeight) VALUES (1, 160, 145) ON DUPLICATE KEY UPDATE weight = 160, desiredWeight = 145;</code>
id
ialah lajur auto-naik, tinggalkan lajur itu daripada penyataan INSERT
:<code class="language-sql">INSERT INTO Users (weight, desiredWeight) VALUES (160, 145);</code>
Dengan menggunakan arahan SQL yang betul, anda akan mengelakkan ralat dan mencapai manipulasi data yang dimaksudkan dalam pangkalan data MySQL anda.
Atas ialah kandungan terperinci Mengapa Pertanyaan INSERT MySQL Saya Gagal Apabila Menggunakan Klausa WHERE?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!