![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 37 Pomógł: 0 Dołączył: 20.12.2013 Ostrzeżenie: (0%) ![]() ![]() |
Mam baza z pare do parudziesieciu tysiecy produktow z kolumna `id` (auto_increment od 1 do X). Teraz musze stworzyc kolejna kolumne z losowym identyfikatorem id_losowe, ale nie moze byc RAND(), musi byc losowa liczba ale od 1 do X, czyli np.
produkt id=1 bedzie mial id_losowe=231 produkt id=2 bedzie mial id_losowe=8721 produkt id=3 bedzie mial id_losowe=21 Zrobiłem tak: Kod $numbers = range(1, $ilosc_produktow); shuffle($numbers); $ids = $this->pobierz_id_wszystkich_produktow(); foreach($ids as $id => $dane){ $id_wylosowane = array_shift($numbers); update `'.$this->nazwa_bazy.'` set `id_losowe`= "'.$id_wylosowane.'" where `id`='.$id.' limit 1 } ale zapytanie wykonuje sie za dlugo. Moze da sie to zrobic przez mysql zeby pobral wszystkie id jakie sa i przypisal je do id_losowe ale zeby sie nie powtarzaly, mam nadzieje ze nie zamotalem za bardzo. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 26.09.2025 - 00:14 |