Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: MySql сброс поля!

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
ybiza
Отправлено: 05 Января, 2011 - 08:26:39
Post Id


Новичок


Покинул форум
Сообщений всего: 30
Дата рег-ции: Июль 2010  


Помог: 0 раз(а)




Существует база MySql в таблице 5 строк поле id заполняется автоматически. При удалении одной из записи и создании новой в поле id остаются дыры (1.2.4.5.6). Если не трудно подскажите пожалуйста может есть sql запрос или что то еще что поможет заново пересчитать назначить поле id (12345)?
 
 Top
Champion Супермодератор
Отправлено: 05 Января, 2011 - 09:02:47
Post Id



Активный участник


Покинул форум
Сообщений всего: 4350
Дата рег-ции: Авг. 2008  
Откуда: Москва


Помог: 57 раз(а)




зачем ?
 
 Top
vlom
Отправлено: 05 Января, 2011 - 09:05:42
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 681
Дата рег-ции: Окт. 2010  
Откуда: Екатеринбург


Помог: 4 раз(а)




Нет, пока такой функции в mysql не добавлено, да и вряд ли когда появится
 
 Top
Реф
Отправлено: 05 Января, 2011 - 09:10:33
Post Id



Частый гость


Покинул форум
Сообщений всего: 159
Дата рег-ции: Июль 2010  
Откуда: Реутов, Россия


Помог: 0 раз(а)




Подобны манипуляции с id могут в конечном итоге привести к нарушению ссылочной целостности таблиц в БД.

Если уж ОЧЕНЬ надо, то получаем число записей в таблице, потом в цикле (от 1 до полученного числа) меняем все id на нужные.


-----
Думать надо головой, а не головкой!
 
 Top
ybiza
Отправлено: 05 Января, 2011 - 09:10:51
Post Id


Новичок


Покинул форум
Сообщений всего: 30
Дата рег-ции: Июль 2010  


Помог: 0 раз(а)




Champion! Мне необходимо выбрать случайные записи генерирую rand () число в заданном диапазоне id и беру из базы нужные записи! а если id не все по порядку то может случиться так что произойдет ошибка! Что делать тогда!
(Добавление)
Вопрос тогда такой! Можно ли из Mysql взять строку 3 а не строку с id = 3 и если да то как?
 
 Top
Реф
Отправлено: 05 Января, 2011 - 09:40:50
Post Id



Частый гость


Покинул форум
Сообщений всего: 159
Дата рег-ции: Июль 2010  
Откуда: Реутов, Россия


Помог: 0 раз(а)




ybiza пишет:
Вопрос тогда такой! Можно ли из Mysql взять строку 3 а не строку с id = 3 и если да то как?


CODE (SQL):
скопировать код в буфер обмена
  1. SELECT * FROM таблица ORDER BY id LIMIT 2,1

(Отредактировано автором: 05 Января, 2011 - 09:44:14)



-----
Думать надо головой, а не головкой!
 
 Top
movEAX
Отправлено: 05 Января, 2011 - 09:46:20
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 750
Дата рег-ции: Авг. 2009  


Помог: 16 раз(а)




В вашем случае можно сделать выборку из базы всех id и применить функцию array_random или shuffle + array_shift(array_pop). Но это оправданно только при небольшом количестве записей.

Еще можно использовать ORDER BY RAND(), но это не самое лучшее решение.

(Отредактировано автором: 05 Января, 2011 - 09:49:11)



-----
армия.. самое убогое место
 
 Top
ybiza
Отправлено: 05 Января, 2011 - 09:58:46
Post Id


Новичок


Покинул форум
Сообщений всего: 30
Дата рег-ции: Июль 2010  


Помог: 0 раз(а)




PHP:
скопировать код в буфер обмена
  1.  
  2.       SELECT * FROM таблица ORDER BY id LIMIT 2,1
  3.  

Получается чтобы выбрать строку можно только балансом LIMIT, а если записей 10000 а надо выбрать 515 то надо устанавливать
PHP:
скопировать код в буфер обмена
  1.  
  2.       SELECT * FROM таблица ORDER BY id LIMIT 514,1
  3.  

Я правильно понимаю!
movEAX! нет такой вариант слишком медленный будет, спасибо!
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Программирование на PHP »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB