3
respostas

Duvida usando o comando order by com limit

usei o comando limit para trazer os 10 primeiros registros de vendas do dia 01/01/2017.

select * from notas_fiscais where data_venda = '2017-01-01' limit 5; o resutado foi esse:

CPF Matricula Data_venda Codigo Imposto 9283760794 00235 2017-01-01 54476 0.12 50534475787 00237 2017-01-01 54477 0.12 492472718 00235 2017-01-01 54478 0.12 3623344710 00235 2017-01-01 54479 0.12 94387575700 00236 2017-01-01 54480 0.1

quando tento colocar o order by pelo cpf nessa consulta, o resultado muda completamente. Como faço para colocar o order by junto com o limit? tentei assim e muda o resultado select * from notas_fiscais where data_venda = '2017-01-01' order by cpf limit 5;

3 respostas

Clayton,

Não entendi o que está errado...

Exemplo:

use sucos_vendas;

select * 
from notas_fiscais 
where data_venda = '2017-01-01' 
order by cpf;

select * 
from notas_fiscais 
where data_venda = '2017-01-01' 
order by cpf 
limit 5;

Traz o resultado - Output:

Output MySQL

Select COM limit - 5 rows:

Select com Limit

Select SEM limit - 74 rows:

Select sem limit

[]'s,

Fabio I.

Estou tentando usar o order by junto com o limit, pra trazer o resultado ja ordenado. Mas não esta funcionando, segue imagens. Insira aqui a descrição dessa imagem para ajudar na acessibilidade , esse é o resultado usando somente o limit. veja que tem CPF que começa com 3 e com 5.

agora quando tento usar o order by junto com o limit, o valor altera. Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Clayton,

Acho que o erro é conceitual.

Sua tabela deve ter mais de 70 registros e existem registros de CPF repetidos.

Se você faz SOMENTE o "limit 5" o SQL pega os primeiros 5 registros da tabela na ordem que foram gravados.

Se você faz o "order by" o SQL primeiro coloca a tabela na ordem de CPF e depois pega os 5 primeiros registros da lista que já foi ordenada.

Agora se você quer AGRUPAR (group by) por CPF é outra conversa...

select * 
from notas_fiscais 
where data_venda = '2017-01-01' 
group by cpf
limit 5;

Group By no MySQL

Veja também:

==========================================================

MySQL ORDER BY Keyword

https://www.w3schools.com/mysql/mysql_orderby.asp

==========================================================

MySQL GROUP BY Statement

https://www.w3schools.com/mysql/mysql_groupby.asp

==========================================================

[]'s,

Fabio I.