반응형
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
이 문제를 어떻게 해결할 수 있습니까? 그것을 만드는 다른 방법 ... 그래서 나는 오류가 발생하지 않습니다 ...
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
여기서 하위 쿼리는 무엇입니까?
반응형
'code' 카테고리의 다른 글
jQuery Chosen 재설정 (0) | 2020.10.13 |
---|---|
버튼을 누를 때 활동이 두 번로드되는 것을 방지하는 방법 (0) | 2020.10.13 |
가로 스크롤 만 사용하는 Div (0) | 2020.10.13 |
ImageMagick 설치 확인 (0) | 2020.10.13 |
centos : 동일한 유닉스 소켓으로 이미 실행중인 다른 MySQL 데몬 (0) | 2020.10.13 |