Выполнение запроса с PHP / MySQL, а затем переупорядочивание результатов по другому столбцу - PullRequest
4 голосов
/ 02 марта 2010

Этот запрос SQL дает мне результаты, которые я хочу; однако я хочу, чтобы результаты упорядочивались по другому столбцу:

SELECT * 
FROM post 
    INNER JOIN account ON post.account_id = account.account_id 
WHERE post_id > new 
ORDER BY post_date 
ASC LIMIT 10;

Я не могу просто изменить ORDER BY post_date ASC на ORDER BY post_id DESC, хотя это фактически упорядочит запрос так, как я хочу ... это даст мне неправильные 10 сообщений.

Я просто хочу взять ТОЧНЫЕ РЕЗУЛЬТАТЫ из вышеприведенного запроса, а затем изменить порядок результатов на post_id.
Я хотел бы сделать это с SQL, если это возможно, если нет, я мог бы упорядочить результаты, добавив результаты в обратный массив.

Ответы [ 2 ]

6 голосов
/ 02 марта 2010

Используйте подзапрос, чтобы изменить порядок:

SELECT * FROM (
  SELECT *
  FROM post
  INNER JOIN account ON post.account_id = account.account_id
  WHERE post_id > neww
  ORDER BY post_date ASC LIMIT 10;
) ORDER BY post_id
4 голосов
/ 02 марта 2010

Использовать подзапрос:

SELECT * FROM (
    SELECT *
    FROM post
    INNER JOIN account
    ON post.account_id = account.account_id
    WHERE post_id > neww
    ORDER BY post_date ASC
    LIMIT 10) AS T1
ORDER BY post_id DESC
...