Jump to content


Photo

Busca No Banco De Dados


  • Faça o login para participar
8 replies to this topic

#1 Lailson

Lailson

    Novato no fórum

  • Usuários
  • 5 posts
  • Sexo:Masculino
  • Localidade:Campanha

Posted 30/12/2009, 18:23

Boa noite,

Estou com um problema a respeito de busca no banco de dados.
Na tabela existem um campo de nome codigos que contem o seguinte: -T1-V1-V2-N-T3 em outros pode constar outra configuração exemplo: -T1-N-T3

Preciso fazer uma busca no banco para a possibilidade de relatório e impressão de quantidade de ocorrencia para todos os itens que contenha neste campo o código "T1".


A busca seria $query = "SELECT * FROM codigo WHERE qual='T1'";

Mas como neste campo tem outros caracteres alem do T1 não sei como realizar esta pesquisa.

Desde ja, agradeço.

#2 Paulo Freitas

Paulo Freitas

    ××××××× LRU #456504 ××××××× ××××××× LRM #364686 ×××××××

  • Ex-Admins
  • 5612 posts
  • Sexo:Masculino
  • Localidade:Campinas - SP

Posted 30/12/2009, 19:18

SELECT * FROM codigo WHERE qual LIKE '%T1%'
[]’sAté mais

#3 Lailson

Lailson

    Novato no fórum

  • Usuários
  • 5 posts
  • Sexo:Masculino
  • Localidade:Campanha

Posted 30/12/2009, 22:31

SELECT * FROM codigo WHERE qual LIKE '%T1%'
[]’s



Ocorreu erro

#4 CswargameS

CswargameS

    Eu não acredito!

  • Ex-Admins
  • 1490 posts
  • Sexo:Masculino
  • Localidade:Franca/SP

Posted 05/01/2010, 09:44

Qual erro? :huh:
Regras
Posted Image
Fórum WMO - Equipe de Design & Vídeo, Áudio e Mídias - Administrador

#5 Lailson

Lailson

    Novato no fórum

  • Usuários
  • 5 posts
  • Sexo:Masculino
  • Localidade:Campanha

Posted 05/01/2010, 15:53

Qual erro? :huh:



Preciso colocar o valor a ser procurado pelo like numa variavel, usei assim:

SELECT * FROM codigo WHERE qual LIKE '%$categ%'

Sendo que a variavel $categ teria o valor de 'T' conforme a explicação do amigo.

#6 Renan L. Queiroz

Renan L. Queiroz

    Mestre

  • Usuários
  • 690 posts
  • Sexo:Masculino
  • Localidade:Brasilia - DF

Posted 05/01/2010, 16:04

O simbolo de porcentagem é uma cláusula para que tudo que esteja "antes" e "depois" seja "qualquer coisa"

Exemplo:
SELECT * FROM alunos WHERE nome LIKE 'Renan%'
Retorna todos os nomes que "comecem" com Renan e o que vem posteriormente não "importa".

SELECT * FROM alunos WHERE nome LIKE '%Queiroz'
Retorna todos os nomes que "terminem" com Queiroz e o que vem anteriormente não "importa".

SELECT * FROM alunos WHERE nome LIKE '%L.%'
Retorna todos os nomes que "possuem" L. e o que vem anteriormente e posteriormente não "importa".

Entendido? Agora tente isso:
"SELECT * FROM codigo WHERE qual LIKE '%". $variavel ."%'"
Acredito que seja assim, se não me engano (sintax).

Se bem que assim também funciona:
"SELECT * FROM codigo WHERE qual LIKE '% $variavel %'"

Edição feita por: Renan L. Queiroz, 05/01/2010, 16:06.

Especialidade: Desenvolvimento e Banco de Dados.


Este post lhe ajudou? Agradeça: Posted Image


#7 Lailson

Lailson

    Novato no fórum

  • Usuários
  • 5 posts
  • Sexo:Masculino
  • Localidade:Campanha

Posted 05/01/2010, 16:18

O simbolo de porcentagem é uma cláusula para que tudo que esteja "antes" e "depois" seja "qualquer coisa"

Exemplo:

SELECT * FROM alunos WHERE nome LIKE 'Renan%'
Retorna todos os nomes que "comecem" com Renan e o que vem posteriormente não "importa".

SELECT * FROM alunos WHERE nome LIKE '%Queiroz'
Retorna todos os nomes que "terminem" com Queiroz e o que vem anteriormente não "importa".

SELECT * FROM alunos WHERE nome LIKE '%L.%'
Retorna todos os nomes que "possuem" L. e o que vem anteriormente e posteriormente não "importa".

Entendido? Agora tente isso:
"SELECT * FROM codigo WHERE qual LIKE '%". $variavel ."%'"
Acredito que seja assim, se não me engano (sintax).

Se bem que assim também funciona:
"SELECT * FROM codigo WHERE qual LIKE '% $variavel %'"



Entendi obrigado e funcionou perfeitamente agora.
Só mais uma questão e se neste caso eu quiser que não seja exibido apenas o que constar na variavel, poderia ser usado assim:
"SELECT * FROM codigo WHERE qual NOT LIKE '% $variavel %'"

#8 Renan L. Queiroz

Renan L. Queiroz

    Mestre

  • Usuários
  • 690 posts
  • Sexo:Masculino
  • Localidade:Brasilia - DF

Posted 05/01/2010, 16:52

Mais ou menos, colocando desta forma, vocês está colocando a seguinte cláusula:
Me traga todos os registros que não "contenham" minha "variável" no campo "qual".
Se for exatamente isso que você quer, se adequa corretamente!

Caso contrário, que é o que estou percebendo, no caso de se ter uma string
com vários "tipos" no registro, esses também não serão incluídos na consulta!
Exemplo: qual = "T1-V1-V2-N-T3"

Colocando o NOT LIKE com "T1", todos registros que contenha o T1 não serão apresentados!
;-)

Edição feita por: Renan L. Queiroz, 05/01/2010, 16:54.

Especialidade: Desenvolvimento e Banco de Dados.


Este post lhe ajudou? Agradeça: Posted Image


#9 Lailson

Lailson

    Novato no fórum

  • Usuários
  • 5 posts
  • Sexo:Masculino
  • Localidade:Campanha

Posted 06/01/2010, 18:16

Neste caso seria mais conveninte usar o like com as variaveis que se quer verificar.

Exemplo:
"SELECT * FROM codigo WHERE qual LIKE '% $variavel %'" and (qual LIKE '% $variavel2 %'" or qual LIKE '% $variavel3 %')"

Assim seria exibido caso aparecesse 'T1' and V1 ou V2, certo?

Obrigado pela ajuda.




0 user(s) are reading this topic

0 membro(s), 0 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq