Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: AUTO_INCREMENT сортировка
 
 автор: ntro123   (15.02.2011 в 18:09)   письмо автору
 
 

Добрый вечер.

У меня 5 записей. с id=1 до id=5
удалил запись с id=3

как мне упорядочить/отсортировать?

Спасибо.

  Ответить  
 
 автор: cheops   (15.02.2011 в 18:12)   письмо автору
 
   для: ntro123   (15.02.2011 в 18:09)
 

Хм... под "упорядочить/отсортировать" что имеете в виду? После удаления у вас получился следующий набор первичных ключей
1
2
4
5
Вы хотите получить
1
2
3
4
или имеется в виду что-то другое?

  Ответить  
 
 автор: ntro123   (15.02.2011 в 19:18)   письмо автору
 
   для: cheops   (15.02.2011 в 18:12)
 

Все верное.

  Ответить  
 
 автор: cheops   (15.02.2011 в 19:28)   письмо автору
 
   для: ntro123   (15.02.2011 в 19:18)
 

Ответ собственно: никак, поле с атрибутом AUTO_INCREMENT не предназначено для заполнения таких пропусков, оно предназначено для генерации уникальных значений. Не вдаваясь в подробности, можно утверждать, что занятие удаленного ранее номера для этой задачи не подходит и очень вредно. Если вам нужна последовательность, лучше генерировать её искусственно на стороне клиента, не надеясь на поле с атрибутом AUTO_INCREMENT. У вас какая задача стоит (может другое решение найдется)?

  Ответить  
 
 автор: cheops   (15.02.2011 в 19:34)   письмо автору
 
   для: ntro123   (15.02.2011 в 19:18)
 

Вернее способ есть - нужно удалить столбец с атрибутом AUTO_INCREMENT и создать его по-новой, тогда записям будут присвоены новые значения и они будут упорядочены. Однако, лучше им не пользоваться, так как это мина замедленного действия: если в дальнейшем у вас будут вводиться дополнительные таблицы, связанные с этой таблицей через первичный ключ, таким переупорядочиванием вы будете необратимо разрушать связь между таблицами.

  Ответить  
 
 автор: ntro123   (15.02.2011 в 20:26)   письмо автору
 
   для: cheops   (15.02.2011 в 19:34)
 

Ок, спасибо понял.


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

Но запрос "select proxy from proxy" не помогает, ивлекает только первый, а лишнии поля типа id и т.д. сувать не хочу.

Как быть?

  Ответить  
 
 автор: cheops   (15.02.2011 в 21:36)   письмо автору
 
   для: ntro123   (15.02.2011 в 20:26)
 

Если вам нужны случайные значения, можно просто воспользоваться сортировкой по RAND()
SELECT proxy FROM proxy
ORDER BY RAND()

значения будут выводиться в случайном порядке.

  Ответить  
 
 автор: ntro123   (16.02.2011 в 14:12)   письмо автору
 
   для: cheops   (15.02.2011 в 21:36)
 

Спасибо большое! помогло!

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования