logo

ZAMÓWIENIE SQL LOSOWO

Jeśli chcesz, aby wynikowy rekord był zamówione losowo , powinieneś użyć poniższych kodów według kilku baz danych.

Oto pytanie: jaka jest potrzeba pobrania losowego rekordu lub wiersza z bazy danych?

Czasami możesz chcieć wyświetlić losowe informacje, takie jak artykuły, linki, strony itp. dla użytkownika.

Jeśli chcesz pobrać losowe wiersze z dowolnej bazy danych, musisz użyć zmienionych zapytań zgodnie z bazami danych.

    Wybierz losowy wiersz z MySQL:

Jeśli chcesz zwrócić losowy wiersz z MOIM SQL, użyj następującej składni:

 SELECT column FROM table ORDER BY RAND () LIMIT 1; 
    Wybierz losowy wiersz za pomocą Postgre SQL:
 SELECT column FROM table ORDER BY RANDOM () LIMIT 1; 
    Wybierz losowy wiersz z SQL Server:
 SELECT TOP 1 column FROM table ORDER BY NEWID (); 
    Wybierz losowy wiersz z Oracle:
 SELECT column FROM (SELECT column FROM table ORDER BY dbms_random.value) WHERE rownum = 1; 
    Wybierz losowy wiersz w IBM DB2:
 SELECT column RAND () as IDX FROM table ORDER BY IDX FETCH FIRST 1 ROWS ONLY; 

Aby zrozumieć tę koncepcję w praktyce, przejrzyjmy kilka przykładów wykorzystania bazy danych MySQL. Rozważmy, że w bazie danych utworzono elementy tabeli zawierające następujące dane:

sekwencja Fibonacciego w Javie

Tabela: elementy

ID Nazwa_przedmiotu Ilość przedmiotów Cena przedmiotu Data zakupu
1 Mydło 5 200 2021-07-08
2 Pasta do zębów 2 80 2021-07-10
3 Długopis 10 pięćdziesiąt 2021-07-12
4 Butelka 1 250 2021-07-13
5 Szczotka 3 90 2021-07-15

Załóżmy, że chcemy pobrać dowolny losowy rekord z tabeli pozycji.

Zapytanie napiszemy w następujący sposób:

Struktury danych Java
 mysql> SELECT * FROM items ORDER BY RAND () LIMIT 1; 

Możemy uzyskać następujące wyniki:

ID Nazwa_przedmiotu Ilość przedmiotów Cena przedmiotu Data zakupu
3 Długopis 10 20 2021-07-12

Spróbujmy teraz wykonać to samo zapytanie jeszcze raz.

 mysql> SELECT * FROM items ORDER BY RAND () LIMIT 1; 

Możemy uzyskać następujące wyniki:

ID Nazwa_przedmiotu Ilość przedmiotów Cena przedmiotu Data zakupu
5 Szczotka 3 90 2021-07-15

Z powyższych wyników możemy wywnioskować, że za każdym razem otrzymujemy różne rekordy jako dane wyjściowe, mimo że dwukrotnie wykonaliśmy to samo zapytanie. Funkcja LOS () dwukrotnie wybrała losowe rekordy dla tego samego zapytania z pojedynczej tabeli. Dlatego nawet jeśli ponownie wykonamy to samo zapytanie, za każdym razem otrzymamy inny wynik. Istnieje rzadka możliwość uzyskania tego samego rekordu po kolei za pomocą funkcji LOS ().

Załóżmy teraz, że chcesz, aby wszystkie rekordy tabeli były pobierane losowo.

W tym celu musimy wykonać następujące zapytanie:

 mysql> SELECT * FROM items ORDER BY RAND (); 

Możemy uzyskać następujące wyniki:

ID Nazwa_przedmiotu Ilość przedmiotów Cena przedmiotu Data zakupu
4 Butelka 1 250 2021-07-13
5 Szczotka 3 90 2021-07-15
1 Mydło 5 200 2021-07-08
2 Pasta do zębów 2 80 2021-07-10
3 Długopis 10 pięćdziesiąt 2021-07-12

Istnieje również możliwość uzyskania innego układu rekordów, jeśli ponownie wykonamy funkcję RAND () na tabeli pracowników.