Estou tentando fazer uma pesquisa em um banco, porém está me retornando os nomes procurados só que com comparados em caixa (alta e baixa) quando eu digito uma palavra minúscula só me encontra as frases escritas em minúsculas mais queria encontrar todas os nomes independente de serem maiúsculas ou minúsculas, alguém pode me ajudar?
tenho o seguinte codigo, o que já me faz uma pesquisa
private void txtPesquisaKeyReleased(java.awt.event.KeyEvent evt) {
tabel.preencheTabelaMedicamento(tabela, "select * from medicamentos where med_nome like '" + txtPesquisa.getText() + "%' order by med_nome");
}
Uma forma simples é você fazer a comparação com Upper tanto no nome que vem do banco, como no nome que você está passando
como parâmetro:
Poderia ficar algo como:
private void txtPesquisaKeyReleased(java.awt.event.KeyEvent evt) {
tabel.preencheTabelaMedicamento(tabela, "select * from medicamentos where upper(med_nome) like '" + txtPesquisa.getText().toUpperCase() + "%' order by med_nome");
}
Abraços!
kenneth
Fala brow,
Ou você pode usar ilike
...select*fromTABELAwhereCAMPOilikeALGUMA_COISA
Abraco!
AlexandreGama
Olá kenneth!
Bem lembrado, porém se minha memória não falha este comando é usando em Postgre certo?
Abraços!
Mitnick8
kenneth:
Fala brow,
Ou você pode usar ilike
...select*fromTABELAwhereCAMPOilikeALGUMA_COISA
Abraco!
kenneth, era exatamente isso que eu queria, funcionou perfeitamente.
AlexandreGama, no seu caso o UpperCase ele estaria pondo tudo em maiúsculo e daria erro mesmo assim quando fosse digitado a segunda letra que está em minúscula.
Obrigado kenneth e AlexandreGama.
kenneth
Fala Alexandre,
Isso mesmo, o ilike é do Postgre.
Se não me engano, no mysql só existe o like, sendo case-insensitive por padrão.
Vi essa informação no manual do MySql (um chm que tenho aqui)
Na verdade foi este o motivo de eu ter passado o like, dado que é funcional no SQLServer, Firebird, Oracle, MySQL, etc.
Mas bem lembrado! Devo ter usado o ilike somente uma vez de teste.
Lembrando ainda Mitnick8 que sugiro que você tenha uma solução que não contemple vários bancos, assim em uma possível
migração você não precisaria se preocupar com isso, levando em consideração que você precise trabalhar com JDBC puro.
Caso não seja necessário, sugiro que trabalhe com um ORM mesmo.