Se você quiser que o registro resultante seja ordenado aleatoriamente , você deve usar os seguintes códigos de acordo com vários bancos de dados.
Aqui fica uma pergunta: qual a necessidade de buscar um registro aleatório ou uma linha de um banco de dados?
Às vezes você pode querer exibir informações aleatórias como artigos, links, páginas , etc., para o seu usuário.
Se você quiser buscar linhas aleatórias de qualquer um dos bancos de dados, será necessário usar algumas consultas alteradas de acordo com os bancos de dados.
Se você quiser retornar uma linha aleatória com MY SQL, use a seguinte sintaxe:
SELECT column FROM table ORDER BY RAND () LIMIT 1;
SELECT column FROM table ORDER BY RANDOM () LIMIT 1;
SELECT TOP 1 column FROM table ORDER BY NEWID ();
SELECT column FROM (SELECT column FROM table ORDER BY dbms_random.value) WHERE rownum = 1;
SELECT column RAND () as IDX FROM table ORDER BY IDX FETCH FIRST 1 ROWS ONLY;
Para entender esse conceito de forma prática, vejamos alguns exemplos utilizando o banco de dados MySQL. Considere que temos uma tabela de itens criada no banco de dados com os seguintes dados:
Tabela: itens
EU IA | Nome do item | Quantidade do item | Preço do item | Data de compra |
---|---|---|---|---|
1 | Sabão | 5 | 200 08/07/2021 | |
2 | Pasta de dentes | 2 | 80 | 10/07/2021 |
3 | Caneta | 10 | cinquenta | 12/07/2021 |
4 | Garrafa | 1 | 250 | 13/07/2021 |
5 | Escovar | 3 | 90 | 15/07/2021 |
Suponha que queiramos recuperar qualquer registro aleatório da tabela de itens.
Escreveremos a consulta da seguinte forma:
mysql> SELECT * FROM items ORDER BY RAND () LIMIT 1;
Podemos obter os seguintes resultados:
EU IA | Nome do item | Quantidade do item | Preço do item | Data de compra |
---|---|---|---|---|
3 | Caneta | 10 | vinte | 12/07/2021 |
Agora vamos tentar executar a mesma consulta mais uma vez.
mysql> SELECT * FROM items ORDER BY RAND () LIMIT 1;
Podemos obter os seguintes resultados:
comando linux make
EU IA | Nome do item | Quantidade do item | Preço do item | Data de compra |
---|---|---|---|---|
5 | Escovar | 3 | 90 | 15/07/2021 |
A partir dos resultados acima, podemos concluir que obtemos registros diferentes como saída nas duas vezes, embora tenhamos executado a mesma consulta duas vezes. A função RAND () selecionou registros aleatórios ambas as vezes para a mesma consulta de uma única tabela. Portanto, mesmo que executemos a mesma consulta novamente, obteremos resultados diferentes a cada vez. Existe uma rara possibilidade de obter o mesmo registro consecutivamente usando a função RAND().
Agora, suponha que você queira que todos os registros da tabela sejam buscados aleatoriamente.
Para fazer isso, precisamos executar a seguinte consulta:
mysql> SELECT * FROM items ORDER BY RAND ();
Podemos obter os seguintes resultados:
EU IA | Nome do item | Quantidade do item | Preço do item | Data de compra |
---|---|---|---|---|
4 | Garrafa | 1 | 250 | 13/07/2021 |
5 | Escovar | 3 | 90 | 15/07/2021 |
1 | Sabão | 5 | 200 | 08/07/2021 |
2 | Pasta de dentes | 2 | 80 | 10/07/2021 |
3 | Caneta | 10 | cinquenta | 12/07/2021 |
Também existe a possibilidade de obtermos alguns arranjos diferentes de registros se executarmos novamente a função RAND() na tabela de funcionários.