
Consulta Sql Complicada
#1
Posted 30/01/2007, 17:07
Seguinte:
Tenho um campo chamado palavraspat
imagine que tenho um resgitro neste campo com as seguintes palavras:
|arroz feijão macarrão|
eu quero selecionar por exemplo algum cliente que tenha feijão no campo... só que a comparação tem que ser feita pela palavra completa... no caso 'feijão'... o cara naum pode localizar por "fei" ou somente "jão"...
com o comando like eu consigo pegar parte da palavra... e o que eu preciso é pegar uma palavra completa dentro do campo que vai ter 3 palavras.... fui claro?
não posso usar where palavraspat = 'Feijão'... porque o registro esta assim : |arroz feijão macarrão|... me ajuda ae.... please...
Abraço a todos
Michel
#2
Posted 31/01/2007, 02:16
tipo assim bem por auto...
while(...) {
$palavras = explode(" ", $dados["palavraspat"]);
if (in_array("feijão", $palavras)) {
echo "Achei no Registro N#";
break;
}
}
Edição feita por: sk15, 31/01/2007, 02:17.
#3
Posted 31/01/2007, 09:18
tipo assim
select * from tabela where palavraspat LIKE '%Feijão%';
geralmente a gente usa isso quando precisa procura uma palavara dentro de um campo com ela e várias palavras.
A solução em código se usa só em ultimo caso ... tem que ver direitinho se o banco de dados já lhe entrega isso mastigadinho

#4
Posted 31/01/2007, 10:08
- Desenvolvedor Python + Django na World News
Blog
#5
Posted 31/01/2007, 13:46

e que os passos de amanhã sejam mais largos que os de hoje.
#6
Posted 31/01/2007, 14:40
Agora depende do banco de dados pra ver q função usar... tem vários jeitos!
E aí, qual éo banco?
[] rafael

#7
Posted 31/01/2007, 15:03
o banco é MySQL agradeço desde já
o sql que eu fiz ta assim
$sqlbanner = ("select cadastro.id_cadastro from cadastro where palavraspat like ('%".$localizar."%')and ufpat like ('%".$UF."%') ;");
no $localizar tenho por exemplo "feijao" mas no campo palavraspat tenho gravado "arroz feijao batata"
Edição feita por: michelsinclair, 31/01/2007, 15:06.
#8
Posted 31/01/2007, 15:18
Com certeza deve ter, mas não tenho conhecimento suficiente pra te dizer qual.
Pra não ficar sem resposta, vou postar uma baita gambiarra em que pensei(que dá até vergonha! rs..), mas q deve funcionar!
Se você quer procurar a palavra inteira, coloque um ESPAÇO antes e depois dela via código.
Para garantir que a primeira e a última palavra sejam incluídas nessa pesquisa de gambiarra, faça a mesma coisa com o seu campo.
Dessa forma, fica mais ou menos isso:
select cadastro.id_cadastro
from cadastro
where ' '||palavraspat||' ' like ('% ".$localizar." %')...
Observe que tem um espaço entre o % e a " no LIKE...
Dessa forma, se o cara procurar por jão, na verdade estará procurando por " jão " e não encontrará nada!
É... é isso! rs... Qualquer coisa, fala aí!
[]

#9
Posted 31/01/2007, 16:21
#10
Posted 31/01/2007, 20:10
Agora me diz pq as palavas são incluídas deste jeito e não apenas uma por campo???
#11
Posted 01/02/2007, 08:32

[]

#12
Posted 01/02/2007, 08:54

#13
Posted 01/02/2007, 12:08

e que os passos de amanhã sejam mais largos que os de hoje.
#14
Posted 01/02/2007, 12:37
Pelo que eu entendi não existe de fato o caractere | gravado no banco... Se existir, tem q ampliar a gambiarra pra substituir o |

[] rafael

#15
Posted 01/02/2007, 15:27
Veja neste tópico: http://forum.wmonlin...howtopic=168678
[...] ó terra, terra, terra; ouve a palavra do Senhor. — Jeremias 22:29
1 user(s) are reading this topic
0 membro(s), 1 visitante(s) e 0 membros anônimo(s)