Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Memadam Baris dalam MySQL Menggunakan Subkueri Tanpa Ralat Sintaks?

Bagaimana untuk Memadam Baris dalam MySQL Menggunakan Subkueri Tanpa Ralat Sintaks?

Mary-Kate Olsen
Mary-Kate Olsenasal
2025-01-10 18:06:43886semak imbas

How to Delete Rows in MySQL Using a Subquery Without Syntax Errors?

Selesaikan ralat sintaks dengan bijak apabila subquery MySQL memadamkan baris

Ralat sintaks mungkin berlaku apabila menggunakan subkueri sebagai syarat untuk memadamkan baris dalam MySQL. Ralat ini biasanya berlaku apabila jadual sasaran operasi padam (di sini term_hierarchy) juga dirujuk dalam subkueri.

Untuk menyelesaikan masalah ini, pendekatan alternatif diperlukan. Pertanyaan berikut menyediakan penyelesaian yang cekap:

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

Dalam pertanyaan ini, subkueri yang digunakan untuk mengenal pasti nilai tid yang hendak dipadamkan dibalut dengan subkueri tambahan (di sini dinamakan th1). Ini membolehkan MySQL mengelak daripada menggunakan jadual DELETE dalam kedua-dua klausa WHERE IN dan term_hierarchy, sekali gus menyelesaikan ralat sintaks.

Atas ialah kandungan terperinci Bagaimana untuk Memadam Baris dalam MySQL Menggunakan Subkueri Tanpa Ralat Sintaks?. 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