Есть простая таблица с 4 полями: id(int), text(text), parent_id(int), date_x(timestamp) Отсортировать надо что бы было так:
id date
--- ----------------
1 2017-04-29 18:01:03
2 2016-03-28 18:01:03
3 2015-04-27 18:01:03
Что бы было понятно в таблице хранятся статьи/сообщения эти статьи можно комментировать, так вот свежая статья должна находится в верху списка, а свежий комментарий наоборот внизу Вот этот запрос не работает:
SELECT id, articles.text, parent_id, articles.date FROM articles ORDER BY articles.date, id DESC
Пытался еще объединить 2 запроса с помощью UNION к примеру если parent_id > 0(комментарий) то DESC и если parent = 0(статья) то ASC, но тоже безрезультатно
можно сортировать по дополнительному вычислимому столбцу.
для вашего случая подойдёт, например, числовое представление даты и времени, возвращаемое функцией unix_timestamp(). и условие добавить — если значение такого-то столбца равно нулю, то возвращать отрицательное значение.
пример (дополнительный столбец — d2):
SQL Fiddle
MySQL 5.6 Schema Setup:
create table t (p int, d date);
insert into t (p, d) values
(0, '2017-04-10')
, (0, '2017-04-20')
, (1, '2017-04-15')
, (2, '2017-04-16')
;
Query 1:
select p, d, if(p=0, -unix_timestamp(d), unix_timestamp(d)) d2 from t
order by d2
Results:
| p | d | d2 |
|---|-------------------------|-------------|
| 0 | April, 20 2017 00:00:00 | -1492646400 |
| 0 | April, 10 2017 00:00:00 | -1491782400 |
| 1 | April, 15 2017 00:00:00 | 1492214400 |
| 2 | April, 16 2017 00:00:00 | 1492300800 |
в принципе, можно обойтись даже и без столбца, указав нужное условие прямо в order by:
SQL Fiddle
MySQL 5.6 Schema Setup:
create table t (p int, d date);
insert into t (p, d) values
(0, '2017-04-10')
, (0, '2017-04-20')
, (1, '2017-04-15')
, (2, '2017-04-16')
;
Query 1:
select * from t
order by if(p=0, -unix_timestamp(d), unix_timestamp(d))
Results:
| p | d |
|---|-------------------------|
| 0 | April, 20 2017 00:00:00 |
| 0 | April, 10 2017 00:00:00 |
| 1 | April, 15 2017 00:00:00 |
| 2 | April, 16 2017 00:00:00 |
Сборка персонального компьютера от Artline: умный выбор для современных пользователей