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
Как я могу исправить эту проблему ? его другой способ сделать это ... так что я не получаю ошибку ...
4 ответов:
вместо того, чтобы использовать, вы можете использовать присоединиться
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 не поддерживает ограничение в подзапросах для некоторых операторов подзапросов:
почему вы не можете использовать простые: ?
SELECT v.VID, v.thumb FROM video as v WHERE title LIKE "%'.$Channel['name'].'%" ORDER BY viewtime DESC LIMIT 5что за подзапросы здесь?
Comments