MySQL, ORDER BY порядок вставки, без сортировки столбцов

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

Я знаю, что это не рекомендуется делать... Тем не менее, я хотел бы знать, как это сделать.

Как я понимаю из ответов, если до ввода значений не было добавлено ни одного столбца сортировки, например: timestamp или autoincremental, нет способа их сортировки путем вставки.

Ответ 1

Нет гарантии, что строки будут возвращены в каком-либо конкретном порядке без предложения ORDER BY в запросе.

Рассмотрим простой запрос, который возвращает все столбцы всех строк в таблице. Например:

SELECT * FROM mytable ; 

Для этого запроса вполне вероятно, что MySQL выполнит полное сканирование таблицы с начала таблицы. Таким образом, вполне вероятно, что строки будут возвращены в порядке их нахождения в физическом хранилище.

Это может приблизительно соответствовать порядку, в который были вставлены строки, если не было ни удалений, ни обновлений, ни реорганизации, где пространство для вставленной строки было впоследствии освобождено и повторно использовано для хранения вновь вставленной строки.

Но это поведение не гарантируется.

Чтобы вернуть строки в том порядке, в котором они были вставлены, запрос должен указать последовательность, в которой должны быть возвращены строки, включая предложение ORDER BY.

Для строк, которые должны быть возвращены в "порядке вставки", это означает, что запрос должен иметь возможность иметь эту информацию доступной или иметь возможность ее получения. Для простого запроса к одной таблице это означает, что информация должна храниться в строке.

Ответ 2

Вы можете ORDER BY извлечь что-то из своей таблицы. Если у вас нет ничего, что можно использовать для выяснения порядка, который вам нужен, вы не можете заказать его.

Ответ 3

В зависимости от данных в таблице вы можете заказать по идентификатору данных - если данные имеют одно инкрементное целое число, чтобы гарантировать уникальность ПК. Другого способа сортировки по порядку размещения нет, если данные не будут записаны и не записаны в таблице.

Я ничего не знаю в MySQL, который сохраняет дополнительную (мета) информацию о записях, которые вы не указали на уровне таблицы.

Ответ 4

Для заказа запроса должен быть столбец. Обычно это будет временная метка вставки или увеличение ключа id/incrementing. Нет способа гарантировать заказ иначе, потому что его нет.

соответствующий поток из форума MySQL