Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Memadam Baris daripada Jadual MySQL Berdasarkan Keputusan Pernyataan Pilih?

Bagaimana untuk Memadam Baris daripada Jadual MySQL Berdasarkan Keputusan Pernyataan Pilih?

Barbara Streisand
Barbara Streisandasal
2024-12-26 14:25:10720semak imbas

How to Delete Rows from a MySQL Table Based on a Select Statement's Results?

Memadamkan daripada Pernyataan Pilih dalam MySQL

Soalan:

Bagaimana saya hendak memadamkan baris daripada jadual MySQL berdasarkan keputusan pernyataan pilihan?

Kod (MySQL 5.0):

DELETE FROM posts where>

Masalah:

Kod di atas tidak berfungsi dalam MySQL 5.0 dan anda ingin mencari penyelesaian yang berfungsi. Matlamat anda adalah untuk memadamkan baris yang tidak mempunyai ID unik.

Jawapan:

Menggunakan IN:

Dalam MySQL , subqueries mengembalikan set hasil. Untuk menggunakan hasil subkueri dalam pernyataan DELETE, anda harus menggunakan operator IN dan bukannya tanda sama dengan (=) dalam klausa WHERE anda.

Kod Diubah Suai:

DELETE FROM posts WHERE id IN (
    SELECT id FROM posts GROUP BY id HAVING ( COUNT(id) > 1 )
)

Pertimbangan Tambahan:

  • Anda tidak boleh mengubah suai jadual yang sama daripada subkueri dalam pertanyaan yang sama.
  • Anda boleh melaksanakan pertanyaan SELECT dan DELETE yang berasingan atau menggunakan subkueri bersarang untuk mencapai hasil yang diingini.
  • Pendekatan alternatif melibatkan penggunaan cantuman, seperti yang dicadangkan oleh Mchl:
DELETE FROM posts p1
WHERE p1.id = (
    SELECT p2.id 
    FROM posts p2
    WHERE p2.id = p1.id
    GROUP BY p2.id
    HAVING COUNT(p2.id) > 1
)

Atas ialah kandungan terperinci Bagaimana untuk Memadam Baris daripada Jadual MySQL Berdasarkan Keputusan Pernyataan Pilih?. 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