[RESOLVIDO] Operador LIKE com vários testes no mesmo campo
12 respostas
T
tsartori
Então pessoal, a ideia é fazer um aplicativo de Bolão. Já esta tudo funcionando. Mas agora preciso pesquisar os ganhadores com base nas 5 dezenas sorteadas. Tem como colocar as 5 dezenas utilizando o operador LIKE e OR?
Obs: fiz de cabeça, ajuste a sintaxe caso seja necessário.
Substitua <TABELA> pelo nome da sua tabela de jogo e PRIMEIRO_NUMERO_SORTEADO e afins pelos números sorteados. Isso deve retornar os jogadores que acertaram os 5 números sorteados.
PS: se for aumentar a complexidade desse aplicativo, considere usar tabelas separadas para os jogos, jogadores e números sorteados, fazendo as consultas através de joins. Isso te permitiria, por exemplo, saber que acertou os 5 números usando count(), por exemplo.
Abraço.
A
Ademiltonjlc1 like
Com o jogo armazenado em um varchar o LIKE não vai resolver seu problema, porque ele vai retornar verdadeiro pra cada dezena sorteada que existir, sem contar quantas dezenas o apostador acertou.
numa simulação em que as dezenas sorteadas foram 05, 06, 11, 17 e 23. O negócio aí é o seguinte: essa função retorna a posição em que o primeiro argumento(no caso a dezena sorteada) está dentro do segundo (o campo com a string do jogo). Se não encontra retorna zero.
A
Ademiltonjlc
Vendo a resposta do TerraSkilll retiro o que disse sobre o LIKE não resolver.
T
TerraSkilll
Interessante, não conhecia essa função position(). Bom que agora há mais opções
Abraços.
A
Ademiltonjlc
O chato é ela ser específica do firebird. Em outros bancos como Oracle por exemplo o mesmo resultado se obtém com a função INSTR()
R
rodevops1 like
Soluções interessantes… não conheço firebird, mas indo pelo SQL, eu já vi like sendo usado assim…
Tendo isso em mente, seria possível tentar algo assim?
select*fromapostaswherejogolike"%05%06%11%17%23%"
Isso pensando em performance obviamente, economizaria alguns likes…
T
tsartori
Obrigado pelas sugestões! Obraço!
R
rodevops1 like
Poxa cara, indica pra nós qual foi a solução? Outras pessoas podem ter a mesma dúvida e estamos curiosos também…
Ao lado de cada post nosso tem um ícone de um tique (próximo ao coraçãozinho do gostei )
A
Ademiltonjlc
pode funcionar desse jeito que você propõe, desde que as dezenas estejam armazenadas em ordem no campo “jogo” e também na string que montar na consulta.