sql >> Base de Datos >  >> RDS >> Mysql

Grupo de resultados aleatorios de MySQL por orden por

Su consulta está en contra del estándar sql porque enumera columnas en la lista de selección que no enumera en la cláusula group by, ni están sujetas a funciones agregadas, como count (). MySQL permite esta funcionalidad bajo ciertas configuraciones de modo sql.

Sin embargo, incluso si esta funcionalidad está habilitada, MySQL tiene restricciones en los datos elegidos de los campos no agregados :

Entonces, en lugar de usar group by, use sorting y la cláusula de límite para limitar la salida:

select * from job
    where type = 1
    order by rand()
    limit 1

Tenga en cuenta también que este método de selección aleatoria consume muchos recursos, ya que MySQL primero tiene que ordenar todo el conjunto de resultados sin usar ningún índice. Hay otras formas de seleccionar aleatoriamente datos de una tabla sin usar order by rand() .