Как mysql/mariadb сортирует одинаковые значения?

MySQL и MariaDB используют различные методы сортировки для одинаковых значений, если не указано другое.

По умолчанию, если не указано специальное условие сортировки, MySQL и MariaDB сортируют одинаковые значения по порядку их вставки в таблицу. Это значит, что если у вас есть столбец с одинаковыми значениями и вы не указали никакую определенную сортировку, то строки с одинаковыми значениями будут возвращены в том порядке, в котором они были добавлены в таблицу.

Например, если у вас есть таблица "users" с колонкой "name" и следующими значениями:

| id | name |
|----|-------|
| 1 | John |
| 2 | Mary |
| 3 | John |
| 4 | Peter |

Если вы выполните запрос:

SELECT * FROM users ORDER BY name;

То результат будет таким:

| id | name |
|----|-------|
| 1 | John |
| 3 | John |
| 2 | Mary |
| 4 | Peter |

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

Однако, если вам нужно указать специальный порядок для сортировки одинаковых значений, вы можете использовать дополнительные условия сортировки, такие как операторы "ASC" (по возрастанию) и "DESC" (по убыванию).

Используя нашу предыдущую таблицу, если вы выполните следующий запрос:

SELECT * FROM users ORDER BY name ASC, id DESC;

То результат будет таким:

| id | name |
|----|-------|
| 1 | John |
| 3 | John |
| 2 | Mary |
| 4 | Peter |

Здесь мы указали, что строки должны сначала сортироваться по возрастанию значения в столбце "name", а затем по убыванию значения в столбце "id". Это означает, что строки с одинаковыми значениями "John" сортируются по значению в столбце "id" в обратном порядке.

В заключение, если не указано иное, MySQL и MariaDB сортируют одинаковые значения по порядку их вставки в таблицу. Однако, вы можете указать другой порядок сортировки, используя дополнительные условия сортировки.