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
Lepaskan: 2025-01-19 06:52:12
asal
1005 orang telah melayarinya

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:

INSERT INTO Users (weight, desiredWeight) VALUES (160, 145) WHERE id = 1;
Salin selepas log masuk

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:
INSERT INTO Users (id, weight, desiredWeight) VALUES (1, 160, 145);
Salin selepas log masuk
  • Mengubah suai Baris Sedia Ada: Untuk mengemas kini baris sedia ada, gunakan UPDATE:
UPDATE Users SET weight = 160, desiredWeight = 145 WHERE id = 1;
Salin selepas log masuk
  • Sisipkan atau Kemas Kini (Bersyarat): Untuk memasukkan baris baharu atau mengemas kini baris sedia ada berdasarkan kunci unik, gunakan INSERT ... ON DUPLICATE KEY UPDATE:
INSERT INTO Users (id, weight, desiredWeight) VALUES (1, 160, 145) ON DUPLICATE KEY UPDATE weight = 160, desiredWeight = 145;
Salin selepas log masuk
  • ID Auto-Tambahan: Jika id ialah lajur auto-naik, tinggalkan lajur itu daripada penyataan INSERT:
INSERT INTO Users (weight, desiredWeight) VALUES (160, 145);
Salin selepas log masuk

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 Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan