2014-03-30 4 views
0

Нечетное название, которое я знаю, но я в тупике. Скажем, если я хватаю 20 строк, как это:как отменить сортировку данных mysql

SELECT * FROM `articles` WHERE date >= UNIX_TIMESTAMP(DATE(NOW() - INTERVAL 30 DAY)) ORDER BY `views` DESC LIMIT 20 

Затем я хочу, чтобы показать их в обратном направлении, от низшего к высшему «мнения», как я могу это сделать? Я не могу просто заказать «ASC», поскольку это дает мне неправильный набор результатов. Я хочу наивысшие точки зрения, а затем заказываю их от самого низкого до самого высокого.

+1

Вложенный запрос с обратной сортировкой – zerkms

ответ

1

принимая идею Zerkms в:

Select * FROM (
    SELECT * FROM `articles` 
    WHERE date >= UNIX_TIMESTAMP(DATE(NOW() - INTERVAL 30 DAY)) 
    ORDER BY `views` DESC 
    LIMIT 20 
) as reverse_article 
ORDER BY views ASC 

позволит вам удваивать сортировать

  1. Самые высокие будут выбраны (внутренний выбор)

  2. Наименьшее количество будет выбрано f сначала.

ОДНАКО

вы можете также обратный порядок сортировки с помощью PHP сначала получать свой fetchALL и запустить отсчет в обратном направлении от графа() (который ваш массив размером не более) до 0 (что ваш самый высокий массив вид)

принять ваш выбор

0

Для этого используется подзапрос. Подзапрос выбирает правильные 20 строк, внешний запрос затем сортирует их в соответствии с вашими окончательных критериев:

SELECT a.* 
FROM (SELECT a.* 
     FROM articles a 
     WHERE date >= UNIX_TIMESTAMP(DATE(NOW() - INTERVAL 30 DAY)) 
     ORDER BY views DESC 
     LIMIT 20 
    ) a 
ORDER BY views ASC; 
0

Это должно работать

SELECT * FROM (SELECT * FROM `articles` WHERE date >= UNIX_TIMESTAMP(DATE(NOW() - INTERVAL 30 DAY)) ORDER BY `views` DESC LIMIT 20) t ORDER BY `views` ASC 
0

MySQL Query:

(SELECT * FROM `articles` WHERE date >= UNIX_TIMESTAMP(DATE(NOW() - INTERVAL 30 DAY)) ORDER BY `views` DESC LIMIT 20) ORDER by `views` ASC; 
+2

Вместо undervoting, объясните, почему вы не любите мой ответ ... –

+0

это не я, но есть простая причина: ваш ответ * слишком далеко * от действительного запроса mysql. – zerkms

+0

Я тестировал на MySQL Workbench и на своей песочнице PHP, и он работает правильно. = ( –

Смежные вопросы