Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Dúvida no Ex. 3 da Aula 2 - Muitos alunos e o LIMIT

Surgiu uma dúvida aqui. A query que estou usando é a seguinte:

select * from aluno where email like '%.com' order by nome limit 0, 2;

(Igual ao gabarito do exercício)

Ele retorna uma tabela com duas linhas, porém retorna da terceira linha e da segunda linha, que são os nomes que começam com 'A' e com 'F'. Mas pelo que havia entendido o comando 'limit' deveria impedir a terceira linha de 'participar', já que passei para começar a busca depois da linha zero e cobrir as próximas duas linhas, ou seja a primeira e a segunda.

Alguém poderia me explicar melhor o que está acontecendo e como resolveria esse problema (retornar uma tabela com apenas as duas primeiras linhas e ordenadas alfabeticamente).

2 respostas
solução!

Daniel, Bom dia !

seu comando está certo , vou tentar explicar sobre o comando limite .

o comando limite e "limita" a quantidade de linhas que você quer buscar os dados , se você quisesse 10 linhas ele ia aparecer 10 linha .

quando você ordenar a tabela por nome , ele irá mostrar apenas a primeira e a segunda linha da tabela .

por exemplo , se o id 10 fosse o Abrão e o id = 11 o Alberto , e o id = 1 fosse o João , ao ordenar a tabela ficaria desse jeito :

  • 10 - Abrão
  • 11 - Alberto
  • 1 - joão

utilizando o comando o limit 0,2 , iria mostrar :

  • 10 - Abrão
  • 11 - Alberto

se caso retirasse o order by , e utilizasse o limit ficaria assim :

  • 1 - João
  • 10 - Abrão

espero ter te ajudado, Bons Estudos

Boa tarde! Na minha opinião, se formos fazer exatamente o que se pede no enunciado, não seria com a resposta do gabarito e sim com algo do tipo:

select * from aluno where email like '%.com' and id <= 2 order by nome limit 0,2;

obs.: Forçando a resposta e utilizando estritamente a tabela da aula, caso não fosse, não seria garantido que os id´s fossem os mesmos e na mesma ordem.

Conclusão, pelo enunciado a minha resposta foi essa, até porque a do gabarito primeiro ordena e depois limita as duas linhas, enfim...O importante é o aprendizado dos comandos para utilizarmos de acordo com as necessidades. Lição aprendida!