Misturar Critérios And E Or
#1
Posted 03/01/2010, 21:53
classe é uma coluna de valor numérico, quero pesquisar só nas que tem um determinado valor
o busca vai retornar um valor com OR ou AND ou coisa do tipo, de modo que depois de tratada a querystring, vai substituir os espaços por OR ou por AND conforme os critério de busca.
o problema é que está ignorando a coluna classe e retornando valores de toda a base de dados.
como corrijo isso?
o script é em asp, mas minha dúvida é na instrução
#2
Posted 05/01/2010, 09:39
E se não me engano os & está errado.
uma consulta normal seria assim
SELECT * FROM tabela WHERE coluna-X = "valor" AND coluna-Y LIKE "%valor%" ORDER BY id ASC
#3
Posted 21/01/2010, 12:18
acho que eu conseguiSELECT * FROM texto WHERE classe =" & classe & " and texto LIKE '%" & busca & "%'ORDER BY id ASC"
classe é uma coluna de valor numérico, quero pesquisar só nas que tem um determinado valor
o busca vai retornar um valor com OR ou AND ou coisa do tipo, de modo que depois de tratada a querystring, vai substituir os espaços por OR ou por AND conforme os critério de busca.
o problema é que está ignorando a coluna classe e retornando valores de toda a base de dados.
como corrijo isso?
o script é em asp, mas minha dúvida é na instrução
nas partes que terão OR eu coloquei entre parêntesis, assim processa antes o que está entre os parentesis depois passa para o que ta na raíz.
#4
Posted 21/01/2010, 14:37
Assim podemos ajudar mais colegam que eventuamente tenham a mesma dúvida!!
Grato!
Percebendo seu caso acredito que você esteja pensando em algo assim:
sql = "select * from texto where classe="& idClasse &" "& tipoBusca &" texto like '%"& campoBusca &"%' order by id"Onde idClasse é o valor numérico para pesquisa, tipoBusca é onde você vai manipular como será
feito o critério de filtragem incluindo "or" ou "and" (string) e por final campoBusca o
valor na qual será pesquisado dentro do texto.
Ob: ASC é o valor default quando não informado para a ordenação do comando order by
Especialidade: Desenvolvimento e Banco de Dados.
Este post lhe ajudou? Agradeça:
#5
Posted 28/01/2010, 12:43
eu coloquei todos os AND juntos e os OR entre parênteis para ser procesado antes.
SQL = "Select * from tabela where tipo=1 AND classe=2 AND (texto like '%" & texto1 & "%' or texto like '%" & texto2 & "%' OR texto LIKE '%" & texto3 & "') order by coluna_tal ASC"
DAÍ VAI processar todo o or, encontrar os valores que se encaixam nas condições e depois vai pegar os resultados e foltrar pelos ANDs
legal né?
Caraca! Eu q patinava horrores em tudo que eu fazia só agora fui perceber que estou começando a dar uma força para quem precisa de uma forcinha tbm.
1 user(s) are reading this topic
0 membro(s), 1 visitante(s) e 0 membros anônimo(s)