У меня есть таблица со списком адресов электронной почты. Я хочу выбрать подмножество адресов электронной почты, но хочу, чтобы оператор ORDER BY проходил через доменную часть адреса электронной почты, подавая их через каждый другой.
Пример таблицы:
+----+-------------------+-------+
| id | email | name |
+----+-------------------+-------+
| 1 | bob@gmail.com | Bob |
| 2 | tom@gmail.com | Tom |
| 3 | greg@gmail.com | Greg |
| 4 | lisa@gmail.com | Lisa |
| 5 | sally@yahoo.com | Sally |
| 6 | aaron@yahoo.com | Aaron |
| 7 | tim@yahoo.com | Tim |
| 8 | wanda@hotmail.com | Wanda |
| 9 | smith@hotmail.com | Smith |
| 10 | mark@hotmail.com | Mark |
+----+-------------------+-------+
Я анализирую доменную часть электронного письма с помощью substring_index (email, '@', -1).
Я бы выполнил запрос примерно так:
SELECT id,
email,
name
FROM emails
ORDER BY substring_index(email, '@', -1)
[something here to rotate every other result],
id ASC
И я бы хотите, чтобы результаты выглядели так:
+----+-------------------+-------+
| id | email | name |
+----+-------------------+-------+
| 1 | bob@gmail.com | Bob |
| 8 | wanda@hotmail.com | Wanda |
| 5 | sally@yahoo.com | Sally |
| 2 | tom@gmail.com | Tom |
| 9 | smith@hotmail.com | Smith |
| 6 | aaron@yahoo.com | Aaron |
| 3 | greg@gmail.com | Greg |
| 10 | mark@hotmail.com | Mark |
| 7 | tim@yahoo.com | Tim |
| 4 | lisa@gmail.com | Lisa |
+----+-------------------+-------+
Возможно ли это что-то для перебора элемента во время ORDER BY?
Любые советы / идеи будут ОЧЕНЬ признательны :)