Вы можете квантовать упорядочение по дате в 10-минутные порции, так как насчет упорядочения по полу (unix_timestamp (date) / 600), а затем по приоритету
SELECT * FROM converts
WHERE email='myemail@googlemail.com' AND status!='1'
ORDER BY floor(unix_timestamp(date)/600) ASC, priority DESC
Хотя две даты могут по-прежнему находиться на расстоянии менее 10 минут друг от друга, но находятся между двумя разными 10-минутными «кусками». Может быть, этого достаточно, но я думаю, что именно то, что вы запрашиваете, лучше сделать приложением.
(OP запросил расширенное объяснение ....)
Возьмите два раза, которые пересекают десятиминутную границу, как 9:09 и 9:11 сегодня:
- этаж (unix_timestamp ('2009-03-16 09: 09 : 00') / 600) = 2061990
- этаж (unix_timestamp ('2009-03-16 09: 11 : 00') / 600) = 2061991
Предположим, у вас была строка с более высоким приоритетом для 09:11, чем 09:09 - она все равно будет отображаться после строки 09:09, потому что она попала в следующие 10-минутные блоки, даже если она была 2 минуты разные.
Таким образом, этот подход является приблизительным, но не решает проблему, как было первоначально заявлено.
Как вы заявили о своей проблеме, строка с высоким приоритетом может появиться раньше, чем запись, записанная несколькими часами (или днями, или месяцами!) Раньше, если существует непрерывная серия строк с более низким приоритетом с интервалом менее 10 минут.