Si vous souhaitez que l'enregistrement résultant soit commandé au hasard , vous devez utiliser les codes suivants selon plusieurs bases de données.
Voici une question : quelle est la nécessité de récupérer un enregistrement aléatoire ou une ligne d'une base de données ?
Parfois, vous souhaiterez peut-être afficher des informations aléatoires telles que articles, liens, pages , etc., à votre utilisateur.
Si vous souhaitez extraire des lignes aléatoires de l'une des bases de données, vous devez utiliser des requêtes modifiées en fonction des bases de données.
Si vous souhaitez renvoyer une ligne aléatoire avec MY SQL, utilisez la syntaxe suivante :
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;
Pour comprendre ce concept pratiquement, voyons quelques exemples utilisant la base de données MySQL. Considérons que nous avons des éléments de table créés dans la base de données avec les données suivantes :
tri des bulles Java
Tableau : éléments
IDENTIFIANT | Nom de l'article | Article_Quantité | Prix de l'article | Date d'achat |
---|---|---|---|---|
1 | Savon | 5 | 200 2021-07-08 | |
2 | Dentifrice | 2 | 80 | 2021-07-10 |
3 | Stylo | dix | cinquante | 2021-07-12 |
4 | Bouteille | 1 | 250 | 2021-07-13 |
5 | Brosse | 3 | 90 | 2021-07-15 |
Supposons que nous souhaitions récupérer un enregistrement aléatoire de la table des éléments.
Nous écrirons la requête comme suit :
chaîne séparée en Java
mysql> SELECT * FROM items ORDER BY RAND () LIMIT 1;
Nous pouvons obtenir les résultats suivants :
IDENTIFIANT | Nom de l'article | Article_Quantité | Prix de l'article | Date d'achat |
---|---|---|---|---|
3 | Stylo | dix | vingt | 2021-07-12 |
Essayons maintenant d'exécuter la même requête une fois de plus.
mysql> SELECT * FROM items ORDER BY RAND () LIMIT 1;
Nous pouvons obtenir les résultats suivants :
IDENTIFIANT | Nom de l'article | Article_Quantité | Prix de l'article | Date d'achat |
---|---|---|---|---|
5 | Brosse | 3 | 90 | 2021-07-15 |
À partir des résultats ci-dessus, nous pouvons conclure que nous obtenons des enregistrements différents en sortie les deux fois, même si nous avons exécuté la même requête deux fois. La fonction RAND() a sélectionné des enregistrements aléatoires les deux fois pour la même requête à partir d'une seule table. Par conséquent, même si nous exécutons à nouveau la même requête, nous obtiendrons un résultat différent à chaque fois. Il existe une rare possibilité d'obtenir le même enregistrement consécutivement en utilisant la fonction RAND().
Supposons maintenant que vous souhaitiez que tous les enregistrements de la table soient récupérés de manière aléatoire.
Pour ce faire, nous devons exécuter la requête suivante :
mysql> SELECT * FROM items ORDER BY RAND ();
Nous pouvons obtenir les résultats suivants :
IDENTIFIANT | Nom de l'article | Article_Quantité | Prix de l'article | Date d'achat |
---|---|---|---|---|
4 | Bouteille | 1 | 250 | 2021-07-13 |
5 | Brosse | 3 | 90 | 2021-07-15 |
1 | Savon | 5 | 200 | 2021-07-08 |
2 | Dentifrice | 2 | 80 | 2021-07-10 |
3 | Stylo | dix | cinquante | 2021-07-12 |
Il existe également une possibilité d'obtenir des arrangements différents pour les enregistrements si nous exécutons à nouveau la fonction RAND() sur la table des employés.