SQL — отображать строку дважды при заказе & quot; дубликата повторения & quot; по дате создания

У меня есть таблица («комментарии»), полная комментариев, даты, когда они были созданы, и, если они были выдвинуты вперед с помощью кнопки PHP, также указывается дата (в противном случае дата будет «0000-00-00»). «). Я хотел бы, чтобы таблица отображалась как обычно, но чтобы комментарии, которые были «оттолкнуты», были помещены в какое-либо место в таблице с ORDER BY Дата создания («создано»).

Вот пример того, чего я хотел бы достичь, который включает выталкивание старого комментария (ID: 4) в начало (ПРИМЕЧАНИЕ: в таблице нет идентификаторов-дубликатов, только результат запроса будет дублировать повторные записи, как показано здесь) :

id | comment | created             | repushed
---+---------+---------------------+-------------------
4  | hello   | 2015-05-11 06:11:12 | 2015-11-22 11:17:01
23 | recent  | 2015-05-22 12:18:23 | 0000-00-00 00:00:00
22 | recent  | 2015-05-22 11:15:43 | 0000-00-00 00:00:00
21 | recent  | 2015-05-22 10:23:10 | 0000-00-00 00:00:00
4  | hello   | 2015-05-11 06:11:12 | 2015-11-22 11:17:01

Поэтому я пытаюсь использовать UNION объединить все комментарии с повторными комментариями (поэтому все повторные комментарии будут появиться дублируется после запроса), но затем я хочу обработать дублированные повторные комментарии так, как если бы они были созданы в момент их повторной отправки, поэтому для получения этого эффекта необходимо поменять местами значения дубликатов «созданный» и «повторный», а затем упорядочить по «создан».

SELECT *
FROM comments
WHERE repushed != '0000-00-00 00:00:00'
UNION ALL
SELECT *
FROM comments
ORDER BY created DESC

Конечно, это не работает так, как задумано, так как я не знаю, как поменять значения двух столбцов.

1

Решение

Работая с тем, что у вас уже есть, попробуйте это:

SELECT id,comment,repushed as created,repushed
FROM comments
WHERE repushed != '0000-00-00 00:00:00' group by id
UNION ALL
SELECT *
FROM comments group by id ORDER BY created DESC

Это переименует столбец, отправленный в созданный

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]