Rumah >pangkalan data >tutorial mysql >Bagaimana Menggunakan Subkueri dengan Benar dalam Penyata MySQL DELETE?
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>
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>
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!