#mysql #sorting #autonumber
#mysql #сортировка #автономер
Вопрос:
Есть ли способ, которым я могу отсортировать строки таблицы по указанному столбцу (например, имя пользователя), переназначить его значения первичного ключа, а затем заменить содержимое таблицы отсортированными значениями?
Комментарии:
1. Почему на этой земле вы смотрите из «Физической сортировки»? Как вы думаете, содержимое любого файла всегда находится на жестком диске в том же порядке, который вы видите при его открытии?
2. @JhourladEstrella Я голосую за тебя. Это максимум, что я могу сделать здесь для вас 🙂
Ответ №1:
Да, у MySQL есть способ определить табличную сортировку строк в файле. Если ваша таблица относится к типу MyISAM, вы можете запустить:
ALTER TABLE `users` ORDER BY `username`;
Теперь таблица будет отсортирована по имени пользователя. Это исправит порядок строк в файле, сам файл может быть фрагментирован в файловой системе, и вы не можете решить эту проблему с помощью ALTER TABLE. Из руководства:
ORDER BY позволяет создать новую таблицу со строками в определенном порядке. Обратите внимание, что таблица не остается в этом порядке после вставок и удалений. Эта опция полезна в первую очередь, когда вы знаете, что большую часть времени вам нужно запрашивать строки в определенном порядке. Используя эту опцию после внесения существенных изменений в таблицу, вы можете получить более высокую производительность. В некоторых случаях MySQL может упростить сортировку, если таблица упорядочена по столбцу, по которому вы хотите упорядочить ее позже.
Однако, если вы имеете в виду, что хотите изменить числовой первичный ключ, чтобы у первого пользователя в отсортированном списке было 1, 2 и так далее, тогда просто не делайте этого. Никогда не прикасайтесь к первичным ключам после назначения.