W MySQL RAND()
funkcja pozwala na wygenerowanie liczby losowej. W szczególności funkcja zwraca losową wartość zmiennoprzecinkową v w zakresie 0 <= v < 1.0
.
Możesz także wpłynąć na liczbę losową, podając wartość inicjatora jako argument.
Składnia
Składnia wygląda tak:
RAND([N])
Gdzie N
to opcjonalna wartość inicjatora, której możesz użyć, aby wpłynąć na wynik.
Przykład 1 – brak argumentów
Oto podstawowy przykład pokazujący, co się dzieje, gdy nie dostarczamy argumentów.
SELECT RAND();
Wynik:
+--------------------+ | RAND() | +--------------------+ | 0.4335442291885095 | +--------------------+
Wynik nie jest stały – za każdym razem będzie inny.
Oto przykład tego, co się dzieje, gdy uruchamiamy wiele funkcji RAND()
działa razem.
SELECT RAND() 'Result 1', RAND() 'Result 2', RAND() 'Result 3';
Wynik:
+--------------------+---------------------+---------------------+ | Result 1 | Result 2 | Result 3 | +--------------------+---------------------+---------------------+ | 0.9413559538697414 | 0.40614711251682334 | 0.20666773170853753 | +--------------------+---------------------+---------------------+
Przykład 2 – Korzystanie z wartości początkowej
Jak wspomniano, możesz przekazać argument, aby określić wartość inicjatora. Pozwala to wpływać na wyjście funkcji.
SELECT RAND(5);
Wynik:
+---------------------+ | RAND(5) | +---------------------+ | 0.40613597483014313 | +---------------------+
W takim przypadku funkcja zwróci tę samą wartość za każdym razem, jeśli zostanie podana wartość równego argumentu.
SELECT RAND(5) 'Result 1', RAND(5) 'Result 2', RAND(5) 'Result 3';
Wynik:
+---------------------+---------------------+---------------------+ | Result 1 | Result 2 | Result 3 | +---------------------+---------------------+---------------------+ | 0.40613597483014313 | 0.40613597483014313 | 0.40613597483014313 | +---------------------+---------------------+---------------------+
Przykład 3 – Używanie RAND() jako części wyrażenia
Możesz użyć RAND()
funkcjonować jako część wyrażenia.
SELECT RAND()*10;
Wynik:
+-------------------+ | RAND()*10 | +-------------------+ | 8.148973517258627 | +-------------------+
Przykład 4 – Zwrócenie losowej liczby całkowitej między dwiema liczbami
Możesz połączyć RAND()
funkcja z FLOOR()
funkcja zwracająca losową liczbę całkowitą między dwiema liczbami.
Oto jak wygenerować liczbę całkowitą od 5 do 10 (włącznie).
SELECT FLOOR(RAND()*(10-5+1)+5);
Wynik:
+--------------------------+ | FLOOR(RAND()*(10-5+1)+5) | +--------------------------+ | 7 | +--------------------------+
Uruchommy ten sam kod wiele razy, aby zobaczyć różne wyniki.
SELECT FLOOR(RAND()*(10-5+1)+5) 'Result 1', FLOOR(RAND()*(10-5+1)+5) 'Result 2', FLOOR(RAND()*(10-5+1)+5) 'Result 3';
Wynik:
+----------+----------+----------+ | Result 1 | Result 2 | Result 3 | +----------+----------+----------+ | 7 | 9 | 6 | +----------+----------+----------+