Вашата заявка е против стандарта sql, защото изброявате колони в списъка за избор, които не изброявате в групата по клауза, нито са обект на агрегатни функции, като count(). MySQL позволява тази функционалност при определени настройки на sql режим.
Въпреки това, дори ако тази функция е активирана, MySQL има ограничения за данните, избрани от неагрегираните полета :
Така че, вместо да използвате group by, използвайте сортиране и клауза limit, за да ограничите изхода:
select * from job
where type = 1
order by rand()
limit 1
Моля, имайте предвид също, че този метод на случаен избор е много ресурсоемък, тъй като MySQL трябва първо да сортира целия набор от резултати, без да използва никакъв индекс. Има и други начини за произволно избиране на данни от таблица, без да използвате order by rand()
.