Вы должны делать это во внешнем интерфейсе, а не в терминах программирования ОО в db-in, думать о строках как об экземплярах объекта.Создание поддельных объектов совершенно другого типа и вставка их в список по чисто презентационным причинам - отвратительный хак.
SELECT sho FROM
(
SELECT DISTINCT 0 as ord, orderdate, DATE_FORMAT(orderdate, '%d - %m - %y') as sho FROM orders
UNION ALL
SELECT id as ord, orderdate, CONCAT(id, '. ', name) as sho FROM orders
) x
ORDER BY orderdate, ord
Тьфу.Таким образом, мы генерируем несколько поддельных строк с отформатированной датой s, датой (в качестве даты) и 0 (ниже идентификатора) и объединяем их с реальными данными, идентификатором и s форматированным текстом.Когда эта партия данных (фальшивая плюс реальная) сортируется по дате, сначала появляются фальшивые строки, которые образуют «заголовок», затем данные, затем следующий заголовок
Пожалуйста, сделайте это на внешнем интерфейсе