Rumah > pangkalan data > tutorial mysql > Bagaimana Menggunakan Subkueri dengan Benar dalam Penyata MySQL DELETE?

Bagaimana Menggunakan Subkueri dengan Benar dalam Penyata MySQL DELETE?

Patricia Arquette
Lepaskan: 2025-01-10 17:56:42
asal
499 orang telah melayarinya

How to Correctly Use Subqueries in MySQL DELETE Statements?

Syarat subquery dalam pernyataan MySQL DELETE

Anda mungkin menghadapi ralat sintaks apabila menggunakan subkueri sebagai syarat untuk memadamkan baris daripada jadual. Untuk menyelesaikan masalah ini, anda perlu mempertimbangkan had penggunaan subqueries dalam operasi DELETE.

Dalam MySQL, anda tidak boleh menggunakan subkueri secara langsung dalam klausa WHERE bagi pernyataan DELETE. Walau bagaimanapun, terdapat cara bijak mengatasi batasan ini. Dengan menggunakan subquery tambahan untuk memasukkan subquery asal, operasi padam boleh dilakukan dengan jayanya.

Sebagai contoh, pertanyaan berikut:

<code class="language-sql">DELETE FROM term_hierarchy AS th
WHERE th.parent = 1015 AND th.tid IN (
    SELECT DISTINCT(th1.tid)
    FROM term_hierarchy AS th1
    INNER JOIN term_hierarchy AS th2 ON (th1.tid = th2.tid AND th2.parent != 1015)
    WHERE th1.parent = 1015
);</code>
Salin selepas log masuk

akan menghasilkan ralat sintaks. Walau bagaimanapun, dengan membungkus subkueri dalam subkueri lain seperti ini:

<code class="language-sql">DELETE e.*
FROM tableE e
WHERE id IN (SELECT id
             FROM (SELECT id
                   FROM tableE
                   WHERE arg = 1 AND foo = 'bar') x);</code>
Salin selepas log masuk

Operasi padam boleh dilakukan dengan jayanya. Ingat bahawa subkueri yang dilampirkan harus dinamakan, seperti yang ditunjukkan oleh alias "x" dalam contoh.

Atas ialah kandungan terperinci Bagaimana Menggunakan Subkueri dengan Benar dalam Penyata MySQL DELETE?. 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