Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Menyelesaikan Ralat MySQL 1235: 'HAD & DALAM/SEMUA/SEBARANG/BEBERAPA subquery' Tidak Disokong?

Bagaimana untuk Menyelesaikan Ralat MySQL 1235: 'HAD & DALAM/SEMUA/SEBARANG/BEBERAPA subquery' Tidak Disokong?

Susan Sarandon
Susan Sarandonasal
2024-12-13 22:33:10865semak imbas

How to Resolve MySQL Error 1235:

Ralat: "Versi MySQL ini belum lagi menyokong 'LIMIT & IN/ALL/ANY/some subquery'"

Bila melaksanakan pertanyaan PHP yang menggunakan subkueri dengan klausa LIMIT dan pengendali IN, anda mungkin menghadapi ralat seperti ini:

Error during SQL execution: SELECT VID, thumb FROM video WHERE VID IN ( SELECT VID FROM video WHERE title LIKE "%funny%" ORDER BY viewtime DESC LIMIT 5) ORDER BY RAND() LIMIT 1

MySQL Error: This version of MySQL doesn't yet support 'LIMIT & IN/ALL/ANY/SOME subquery'

MySQL Errno: 1235

Ralat ini berlaku kerana versi MySQL tertentu tidak menyokong subqueries dengan klausa LIMIT yang digunakan bersama-sama dengan IN, ALL, ANY, atau SOME operator.

Penyelesaian

Untuk menyelesaikan isu ini, pertimbangkan untuk menggunakan JOIN dan bukannya subquery:

SELECT v.VID, v.thumb
FROM video AS v
INNER JOIN
     (SELECT VID
     FROM video
     WHERE title LIKE "%'.$Channel['name'].'%"
     ORDER BY viewtime DESC
     LIMIT 5) as v2
  ON v.VID = v2.VID
ORDER BY RAND()
LIMIT 1

Pertanyaan yang diubah suai ini menggunakan INNER JOIN untuk menggabungkan hasil dua pernyataan SELECT. Pernyataan SELECT pertama mengambil VID video yang tajuknya mengandungi nama saluran yang ditentukan, menyusunnya mengikut masa tontonan dalam tertib menurun dan mengehadkan keputusan kepada 5 yang pertama. Pernyataan SELECT kedua kemudian menggunakan senarai VID ini untuk menapis set hasil utama, mengambil lajur tertentu daripada jadual video.

Atas ialah kandungan terperinci Bagaimana untuk Menyelesaikan Ralat MySQL 1235: 'HAD & DALAM/SEMUA/SEBARANG/BEBERAPA subquery' Tidak Disokong?. 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