Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

mx loco

Numero mais proximo de

Recommended Posts

Boa tarde galera,

 

tenho um seguinte problema, tenho um select que esta sendo feito da seguinte forma:

 

Select Numero From tabela Where Numero Between (VarNumero - 50) and (VarNumero + 50); limit 10;

 

bom ate ai tube bem, portanto, preciso que retorno os 10 numero mais proximos de VarNumero e nao como retornado no select acima.

Ex:
VarNumero = 100

No select acima, se tiver 10 numero entre 50 e 100, me retornara os mesmo pois o limit 10 tiraria os demais.

Teria como eu fazer uma consulta para retornar os dados como desejados?

Desde ja agradeco.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Select *

From tabela

Order by abs(numero - varnumero)

Limit 10

Compartilhar este post


Link para o post
Compartilhar em outros sites

Boa tarde Motta, obrigado pela atenção.

Fiz o teste com o dados informado, portanto não obtive o resultado esperado, pesquisei no docs e percebi que o abs retorna o valor absoluto. Reli meu post e percebi que não fui claro e ficou um pouco confuso.

Imagine, tenho os dados na base:

Numero - Cep

01 xxxx-xxxx

04 xxxx-xxxx

08 xxxx-xxxx

10 xxxx-xxxx

11 xxxx-xxxx

15 xxxx-xxxx

16 xxxx-xxxx

19 xxxx-xxxx

20 xxxx-xxxx

21 xxxx-xxxx

22 xxxx-xxxx

30 xxxx-xxxx

 

Desta forma, o usuário pesquisa por cep e número, imagine que ele consulte o numero 10, como existe, mostro pra ele os dados restante da tabela, ate ai tudo bem. Portando, caso este número não exista na base, mas existe números próximos a 10 eu gostaria de exibir ao menos 10 registros.

Imagine que ele busca por 7, como não existe, gostaria que retornasse os números (1,4,8,10,11,15,16,19,20,21,22), ou seja, os 10 mais próximos a ele.

Espero que entenda.
Obrigado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Motta, obrigado, deu certo, inclui o abs na minha clausula, portando havia esquecido de tirar o asc do order.

 

Agora esta funcionando perfeitamente, muito obrigado mesmo. Vivendo e aprendendo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.