Как определить, что данные заказа читаются из базы данных MYSQL? - PullRequest
3 голосов
/ 19 мая 2010

есть ли способ изменить данные заказа из БД читаются? Вы знаете, что по умолчанию они считываются из первых данных, вставленных в самые последние, так есть ли способ изменить их на последние-> первые?

Ответы [ 5 ]

5 голосов
/ 19 мая 2010

порядок по умолчанию таков, что они читаются из первых данных, вставленных в самую последнюю

Нет, это не правильно. Порядок по умолчанию зависит от многих вещей, и разные планы выполнения могут привести к различным заказам. Если вы не используете ORDER BY, заказ является неопределенным. Это означает, что вы не должны полагаться на то, что он возвращает строки в порядке вставки, так как это не всегда так.

Если вы хотите положиться на заказ, вы должны добавить заказ по предложению. Если вы хотите вернуть строки, которые были добавлены последними, а затем добавить столбец insert_date, используйте значение NOW() при вставке и добавьте его в запрос:

ORDER BY `insert_date` DESC

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

3 голосов
/ 19 мая 2010

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

Например, независимо от того, какой порядок вы вставляете в InnoDB, он всегда будет по умолчанию в PRIMARY KEY, что отличается от MyISAM

1 голос
/ 19 мая 2010

SELECT * FROM {tablename} ЗАКАЗАТЬ ПО ID DESC

Выше предполагается, что у вас есть поле ID, которое увеличивается с каждой вставкой. У вас также может быть поле типа «CreateDate», которое вы можете использовать в операторе ORDER BY.

ORDER BY будет по умолчанию в порядке возрастания, поэтому, чтобы получить последний-> сначала, используйте DESC.

1 голос
/ 19 мая 2010

Как отмечали другие: «ORDER BY» в вашем выражении sql, хотя вашим наборам данных потребуется поле метки времени, которое должно быть установлено с текущей датой / временем при добавлении новых наборов данных.

После этого вы сможете упорядочить данные от первого к последнему или от последнего к первому (ORDER BY myTimestampField DESC)

1 голос
/ 19 мая 2010

Добавьте столбец отметки времени в вашу таблицу (или, если ваш ID автоматически увеличивается, вы также можете использовать это) и выполните ORDER BY DESC.

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

...