Mysql
 sql >> база данни >  >> RDS >> Mysql

MySQL група с произволни резултати по поръчка от

Вашата заявка е против стандарта sql, защото изброявате колони в списъка за избор, които не изброявате в групата по клауза, нито са обект на агрегатни функции, като count(). MySQL позволява тази функционалност при определени настройки на sql режим.

Въпреки това, дори ако тази функция е активирана, MySQL има ограничения за данните, избрани от неагрегираните полета :

Така че, вместо да използвате group by, използвайте сортиране и клауза limit, за да ограничите изхода:

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

Моля, имайте предвид също, че този метод на случаен избор е много ресурсоемък, тъй като MySQL трябва първо да сортира целия набор от резултати, без да използва никакъв индекс. Има и други начини за произволно избиране на данни от таблица, без да използвате order by rand() .



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Откриване на заключени маси (заключени от LOCK TABLE)

  2. Как да деинсталирате MySQL от Mac OS X?

  3. Използване на count(*) срещу num_rows

  4. Сумиране, изваждане и свързване на множество колони на mysql таблица

  5. Застой в MySQL поради вмъкване от множество нишки