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
Lepaskan: 2024-12-26 14:25:10
asal
703 orang telah melayarinya

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>
Salin selepas log masuk

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 )
)
Salin selepas log masuk

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
)
Salin selepas log masuk

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!

sumber:php.cn
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan