MySQL – Esta versión de MySQL aún no admite ‘LIMIT & IN / ALL / ANY / ALGUNA subconsulta

este es el código que estoy usando

$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 '); 

Este es el error que me das

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

¿Cómo puedo solucionar este problema? Es la otra forma de hacerlo … así que no entiendo el error …

En lugar de usar IN, puede usar 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 

Puede usar a continuación para eludir este error.

 $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 '); 

No necesitas una subconsulta aquí. Prueba esto:

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

En MySQL 5.0.26 y posterior, obtendrá un error:

MySQL no admite LIMIT en subconsultas para ciertos operadores de subconsulta:

Referencia .

¿Por qué no puedes usar simple?

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

¿Para las subconsultas aquí?