UNION и ORDER BY проблема в MySQL - PullRequest
       27

UNION и ORDER BY проблема в MySQL

3 голосов
/ 03 октября 2011

Вы должны увидеть, что я пытаюсь сделать здесь, но это не работает

$getquery = "SELECT * 
FROM highscore 
WHERE score >= '$score'
ORDER BY score ASC
LIMIT 6

UNION

SELECT * 
FROM highscore 
WHERE score < '$score'
ORDER BY score DESC
LIMIT 5";

mysql_error() возвращает: «неправильное использование ORDER BY и UNION».

Ответы [ 2 ]

9 голосов
/ 03 октября 2011

Попробуйте:

$getquery = "(SELECT * 
FROM highscore 
WHERE score >= '$score'
ORDER BY score ASC
LIMIT 6)

UNION ALL -- guaranteed to be beneficial in this case as Johan commented

(SELECT * 
FROM highscore 
WHERE score < '$score'
ORDER BY score DESC
LIMIT 5)";

См. комментарии к моему ответу на соответствующий вопрос .
Или обратитесь к подробному руководству .

4 голосов
/ 03 октября 2011

Чтобы применить ORDER BY или LIMIT к отдельному SELECT, поместите предложение в скобки, которые заключают в себе SELECT:

(SELECT * 
 FROM highscore 
 WHERE score >= '$score'
 ORDER BY score ASC
 LIMIT 6)

UNION

(SELECT * 
 FROM highscore 
 WHERE score < '$score'
 ORDER BY score DESC
 LIMIT 5)
...