MYSQL - WHERE CONDICIONAL
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?
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)
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
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
VALEU ALVARO!! MUITO OBRIGADO!!
Tópico encerrado , respostas não são mais permitidas