![]() |
![]() ![]() |
![]() |
![]()
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. |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 6 806 Pomógł: 1828 Dołączył: 11.03.2014 Ostrzeżenie: (0%) ![]() ![]() |
Czy zawsze produkt o id=1 będzie mieć id_losowe=231?
Możesz utworzyć tabelę z dwiema kolumnami (id, id_losowe) i zrobić UPDATE korzystając z dwóch tabel spiętych po id. -------------------- |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 37 Pomógł: 0 Dołączył: 20.12.2013 Ostrzeżenie: (0%) ![]() ![]() |
Właśnie nie, chodzi o to ze
id = 1, id_losowe = X id = 2, id_losowe = Y id = 3, id_losowe = Z w sensie beda one losowe, ale tylko z przedzialu od 1 do max(`id`) i musza byc unikalne |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 6 380 Pomógł: 1116 Dołączył: 30.08.2006 Ostrzeżenie: (0%) ![]() ![]() |
http://stackoverflow.com/questions/6550155...ween-two-values
Ostatnia odpowiedz na przykład. Rzeźbienie w PHP nie ma sensu. -------------------- |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 1 421 Pomógł: 310 Dołączył: 18.04.2012 Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#6
|
|
![]() Grupa: Zarejestrowani Postów: 6 476 Pomógł: 1306 Dołączył: 6.08.2006 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
Pozwolę sobie zapytać: a w jakim celu w ogóle chcesz coś takiego zrobić? Wydaje się to być dosyć nietypową konstrukcją/strukturą.
|
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 14.08.2025 - 09:51 |