MYSQL - WHERE CONDICIONAL

MLALEX 09/07/2015 16:13:50
#448640
Olá pessoal!!

Estou tentando filtrar informações de banco de dados MySQL com o Where condicional. Exemplo: Você pode ou não escolher uma determinada cidade, como também escolher ou não um determinado bairro, como também, escolher ou não uma determinada data. Os seja, essas variáveis podem ou não estar vazias.

Tentei o código abaixo mas não funciona. Como fazer isso certo?

ALTER DEFINER='iluminacaopubl'@'%' PROCEDURE 'BuscaAvancada'(in VarCidade text, in VarBairro text, in VarData text)
Select * MeuBanco Where (VarCidade <> [Ô][Ô] and Cidade = VarCidade) and (VarBairro <> [Ô][Ô] and Bairro = VarBairro) and (VarData <> [Ô][Ô] and Data = VarData)
ALVAROVB2009 09/07/2015 17:12:54
#448643
Resposta escolhida
Eu monto a query no sistema e mando buscar no banco, então eu iria verificar qual campo estaria preenchido e adicionar na query

dim Sql as string
dim Condicao as string
Sql = [Ô]Select * from banco [Ô]
if trim(varcidade)<> [Ô][Ô] then
if trim(condicao) <> [Ô][Ô] then
condicao = [Ô]where cidade = [ô][Ô] & varcidade & [Ô][ô][Ô]
endif
endif

if trim(varbairro)<> [Ô][Ô] then
if trim(condicao) = [Ô][Ô] then
condicao = [Ô]where bairro = [ô][Ô] & varbairro & [Ô][ô][Ô]
else
condicao = condicao & [Ô] and bairro = [ô][Ô] & varbairro & [Ô][ô][Ô]
endif
endif

if trim(vardata)<> [Ô][Ô] then
if trim(condicao) <> [Ô][Ô] then
condicao = [Ô]where data = [ô][Ô] & vardata & [Ô][ô][Ô]
else
condicao = condicao & [Ô] and data = [ô][Ô] & vardata & [Ô][ô][Ô]
endif
endif

sql = sql & condicao

Eu particulamente acho mais fácil tratar nos códigos do que no banco
MLALEX 10/07/2015 11:26:29
#448665
VALEU ALVARO!! MUITO OBRIGADO!!
Tópico encerrado , respostas não são mais permitidas