Rumah >pangkalan data >tutorial mysql >Mengapa Pertanyaan INSERT MySQL Saya Gagal dengan Klausa WHERE?

Mengapa Pertanyaan INSERT MySQL Saya Gagal dengan Klausa WHERE?

Barbara Streisand
Barbara Streisandasal
2025-01-19 06:26:13608semak imbas

Why Does My MySQL INSERT Query Fail with a WHERE Clause?

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!

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