CONSULTA MYSQL
Olá pessoal!!
Sei como fazer uma consulta MySQL excluindo determinadas informações, se eu já tiver o que eu quero excluir. Ex:
Mas como fazer essa consulta se eu quiser excluir uma lista de cidades variadas com quantidade variada??
Sei como fazer uma consulta MySQL excluindo determinadas informações, se eu já tiver o que eu quero excluir. Ex:
SELECT * FROM BDCidades where Cidade <> [Ô]São Paulo[Ô] and Cidade <> [Ô]Rio de Janeiro[Ô]
Mas como fazer essa consulta se eu quiser excluir uma lista de cidades variadas com quantidade variada??
imegine que essa informação estivesse em um textbox
SELECT * FROM BDCidades where Cidade <> [ô][Ô] & São Paulo & [Ô][ô] and Cidade <> [ô][Ô] & Rio de Janeiro &[Ô][ô]
SELECT * FROM BDCidades where Cidade <> [ô][Ô] & São Paulo & [Ô][ô] and Cidade <> [ô][Ô] & Rio de Janeiro &[Ô][ô]
Apesar de mudar pouco vc pode passar seu critério em uma string tipo : [Ô]São Paulo[Ô],[Ô]Belo Horizonte[Ô],[Ô]Rio de Janeiro[Ô],[Ô]Curitiba[Ô],[Ô]Santos[Ô],[Ô]Porto Alegre[Ô]
SELECT * FROM BDCidades where Cidade not in([ô]São Paulo[ô],[ô]Belo Horizonte[ô],[ô]Rio de Janeiro[ô],[ô]Curitiba[ô],[ô]Santos[ô],[ô]Porto Alegre[ô])
ou Ainda :
SELECT * FROM BDCidades where Cidade not in(select campocidade from tabelax where [Ô]algum critério[Ô] group by campocidade)
Talvez ajude.....
SELECT * FROM BDCidades where Cidade not in([ô]São Paulo[ô],[ô]Belo Horizonte[ô],[ô]Rio de Janeiro[ô],[ô]Curitiba[ô],[ô]Santos[ô],[ô]Porto Alegre[ô])
ou Ainda :
SELECT * FROM BDCidades where Cidade not in(select campocidade from tabelax where [Ô]algum critério[Ô] group by campocidade)
Talvez ajude.....
VALEEEEUUU! Agradeço muito aos dois. Vou ficar com a sugestão do FOXMAN por já ter iniciado uma pesquisa nesse sentido. Faltava o [Ô]group by campocidade[Ô] no meu código.
SELECT * FROM BDCidades where Cidade not in(select campocidade from tabelax where [Ô]algum critério[Ô] group by campocidade)
Oi pessoal!! Fui obrigado a reativar o tópico pois o recurso que usei (SELECT * FROM BDCidades where Cidade not in(select campocidade from tabelax where [Ô]algum critério[Ô] group by campocidade)) funcionou mas meu servidor avisou que as consultas estão consumindo muito recurso e não poderão continuar.
Pensei, então, vou fazer uma consulta antes das cidades em questão (select campocidade from tabelax where [Ô]algum critério[Ô] group by campocidade) e jogar o resultado em um textbox e depois faço outra consulta usando o textbox veja o código abaixo, mas isso não está dando certo:
Acho que o problema está na forma que a string está sendo montada no textbox. Tentei:
cidade1, cidade2, cidade3
[Ô]cidade1[Ô],[Ô]cidade2[Ô],[Ô]cidade3[Ô]
[ô]cidade1[ô], [ô]cidade2[ô]
Nada disso funcionou
Como fazer isso da forma correta?
Pensei, então, vou fazer uma consulta antes das cidades em questão (select campocidade from tabelax where [Ô]algum critério[Ô] group by campocidade) e jogar o resultado em um textbox e depois faço outra consulta usando o textbox veja o código abaixo, mas isso não está dando certo:
ALTER DEFINER='iluminacaopubl'@'%' PROCEDURE 'CarregarCidadesCExcessoes'( in varTextBox text)
SELECT * FROM BandoDeDados where Cidade NOT IN (varTextBox) group by 'Cidade'
Acho que o problema está na forma que a string está sendo montada no textbox. Tentei:
cidade1, cidade2, cidade3
[Ô]cidade1[Ô],[Ô]cidade2[Ô],[Ô]cidade3[Ô]
[ô]cidade1[ô], [ô]cidade2[ô]
Nada disso funcionou
Como fazer isso da forma correta?
Citação::
Oi pessoal!! Fui obrigado a reativar o tópico pois o recurso que usei (SELECT * FROM BDCidades where Cidade not in(select campocidade from tabelax where [Ô]algum critério[Ô] group by campocidade)) funcionou mas meu servidor avisou que as consultas estão consumindo muito recurso e não poderão continuar.
Pensei, então, vou fazer uma consulta antes das cidades em questão (select campocidade from tabelax where [Ô]algum critério[Ô] group by campocidade) e jogar o resultado em um textbox e depois faço outra consulta usando o textbox veja o código abaixo, mas isso não está dando certo:ALTER DEFINER='iluminacaopubl'@'%' PROCEDURE 'CarregarCidadesCExcessoes'( in varTextBox text)
SELECT * FROM BandoDeDados where Cidade NOT IN (varTextBox) group by 'Cidade'
Acho que o problema está na forma que a string está sendo montada no textbox. Tentei:
cidade1, cidade2, cidade3
[Ô]cidade1[Ô],[Ô]cidade2[Ô],[Ô]cidade3[Ô]
[ô]cidade1[ô], [ô]cidade2[ô]
Nada disso funcionou
Como fazer isso da forma correta?
Então troque o NOT IN pela função NOT_IN_SET
Na sua SP coloque o seguinte código :
SELECT * FROM BandoDeDados where FIND_IN_SET(Cidade , varTextBox) = 0
O parametro deve ser passado da seguinte maneira :
[ô]Curitiba,barretos,são paulo[ô]
Ficando em um exmplo bem simples da seguinte maneira :
CALL 'CarregarCidadesCExcessoes'([ô]Curitiba,barretos,são paulo[ô]);
FOXMAN Deus que abençoe seu conhecimento e sua boa vontade em ajudar. Foi perfeita sua explicação. MUITO OBRIGADO!!!
Tópico encerrado , respostas não são mais permitidas