MySQL. Эта версия MySQL еще не поддерживает «LIMIT & IN / ALL / ANY / SOME подзапрос

это код, который использует

$Last_Video = $db->fetch_all(' SELECT VID, thumb FROM video WHERE VID IN ( SELECT VID FROM video WHERE title LIKE "%'.$Channel['name'].'%" ORDER BY viewtime DESC LIMIT 5) ORDER BY RAND() LIMIT 1 '); 

Это ошибка, которая дает мне

  Message: 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<br /> MySQL Error: This version of MySQL doesn't yet support 'LIMIT & IN/ALL/ANY/SOME subquery'<br /> MySQL Errno: 1235 

как я могу исправить эту проблему? его другим способом сделать это … так что я не получаю ошибку …

Solutions Collecting From Web of "MySQL. Эта версия MySQL еще не поддерживает «LIMIT & IN / ALL / ANY / SOME подзапрос"

Вместо использования IN вы можете использовать JOIN

 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 

Вы можете использовать ниже, чтобы обойти эту ошибку.

 $Last_Video = $db->fetch_all(' SELECT VID, thumb FROM video WHERE VID IN (select * from ( SELECT VID FROM video WHERE title LIKE "%'.$Channel['name'].'%" ORDER BY viewtime DESC LIMIT 5) temp_tab) ORDER BY RAND() LIMIT 1 '); 

Здесь вам не нужен подзапрос. Попробуй это:

  SELECT VID, thumb FROM video WHERE title LIKE "%'.$Channel['name'].'%" ORDER BY RAND() DESC LIMIT 1 

В MySQL 5.0.26 и более поздних версиях вы получите сообщение об ошибке:

MySQL не поддерживает LIMIT в подзапросах для определенных подзапросов:

Ссылка .

Почему вы не можете использовать простые:?

 SELECT v.VID, v.thumb FROM video as v WHERE title LIKE "%'.$Channel['name'].'%" ORDER BY viewtime DESC LIMIT 5 

что для подзапросов здесь?