Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL] Mieszanie identyfikatorow unikalnymi liczbami po kolei
ornitolog
post
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.
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 26.09.2025 - 00:14