Mysql
 sql >> Base de données >  >> RDS >> Mysql

Sélectionner une ligne aléatoire par valeur de champ distinct ?

Pour obtenir une valeur aléatoire pour un nom distinct, utilisez

SELECT r.name, 
(SELECT r1.some_info FROM test AS r1 WHERE r.name=r1.name ORDER BY rand() LIMIT 1) AS     'some_info' 
FROM test AS r 
GROUP BY r.name ;  

Mettez cette requête telle quelle dans votre sqlfiddle et cela fonctionnera

J'utilise r et r1 comme noms d'alias de table. Cela utilisera également une sous-requête pour sélectionner un some_info aléatoire pour le nom

SQL Fiddle est là