qual a função do desc na querry:
select e.pergunta, count(r.id) from exercicio e join resposta r on e.id = r.exercicio_id group by r.id order by count(r.id) desc
sem ele, o resultado aparentemente é o mesmo.
qual a função do desc na querry:
select e.pergunta, count(r.id) from exercicio e join resposta r on e.id = r.exercicio_id group by r.id order by count(r.id) desc
sem ele, o resultado aparentemente é o mesmo.
Boa tarde Paulo. Com o desc ou sem é a mesma coisa pois o desc é default mesmo
Na verdade, não é que o desc seja deafult.
O banco sempre retorna os registros na ordem de um potencial índice, por exemplo se seu índice por o campo id, o order será por ele independente de qualquer campo. Geralmente esse índice padrão é a chave primária, se não tiver chave primária, é ordenado por qual foi inserido primeiro.
A menos que o programa, como o wrokbench por exemplo, já esteja com algum order definido como padrão.
Como é o caso de normalmente já ter um limit 1000, mesmo que você não tenha definido.
Mas isso nem sempre está definido, como por exemplo, se em uma linguagem como o PHP você fizer o select em qualquer tabela, ele sempre irá retornar todos os registros, mesmo que sejam milhões e na ordem de algum potencial índice, como explicado acima.
Por isso é sempre recomendado definir um limite nas consultas.
No seu caso específico, não faz diferença por que, provavelmente a ordem do índice padrão da tabela, que deve ser a chave primária, coincidiu com a contagem, dando a impressão de que o order desc seja irrelevante neste caso específico.
Mas é normal muitas pessoas acharem que o order asc ou desc seja default, pois em versões anteriores realmente isso era implícito, mas não deve ser confiado 100% pois isso pode mudar de uma versão para outra, como pode ser visto na documentação:
https://dev.mysql.com/doc/refman/5.5/en/order-by-optimization.html
Por isso, mesmo que pareça não fazer diferença, é recomendado definir um order, caso seu SQL seja executado em versões diferentes do banco.