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

Mengapa Pertanyaan INSERT MySQL Saya Gagal Apabila Menggunakan Klausa WHERE?

DDD
DDDasal
2025-01-19 06:52:12934semak imbas

Why Does My MySQL INSERT Query Fail When Using a WHERE Clause?

Menyelesaikan masalah Pernyataan INSERT MySQL dan Klausa WHERE

Penyataan

MySQL 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:

  • Menambah Baris Baharu: Untuk memasukkan baris baharu, termasuk id, gunakan:
<code class="language-sql">INSERT INTO Users (id, weight, desiredWeight) VALUES (1, 160, 145);</code>
  • Mengubah suai Baris Sedia Ada: Untuk mengemas kini baris sedia ada, gunakan UPDATE:
<code class="language-sql">UPDATE Users SET weight = 160, desiredWeight = 145 WHERE id = 1;</code>
  • Sisipkan atau Kemas Kini (Bersyarat): Untuk memasukkan baris baharu atau mengemas kini baris sedia ada berdasarkan kunci unik, gunakan 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 Auto-Tambahan: Jika 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!

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