Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

LuisDalmolin

Comando LIKE

Recommended Posts

Seguinte galera...

 

tive que migrar todo um sistema de MySQL pra Oracle...já fiz praticamente tudo, me adaptei as diferenças...

 

porém eu tenho um campo que realiza busca pelo usuário, e na busca, ela até funciona, mas por exemplo...

 

tenho 3 notícias com o título 'NOVO [...]'

o comando abaixo me retorna as 3

SELECT * FROM _noticias WHERE TITULO LIKE '%NOVO%' ORDER BY IDNOTICIA DESC

porém o comando abaixo não me retorna nada

SELECT * FROM noticias WHERE TITULO LIKE '%novo%' ORDER BY IDNOTICIA DESC

queria que não importasse maiúsculas e minúsculas, como no MySQL, tem algum modo que posso fazer isto?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Use UPPER ou LOWER em ambos os lados da expressão :

 

SELECT * 
FROM noticias 
WHERE UPPER(TITULO) LIKE UPPER('%novo%') 
ORDER BY IDNOTICIA DESC

Veja também.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Use UPPER ou LOWER em ambos os lados da expressão :

 

SELECT * 
FROM noticias 
WHERE UPPER(TITULO) LIKE UPPER('%novo%') 
ORDER BY IDNOTICIA DESC

Veja também.

 

Utilizar o UPPER ou o LOWER é uma alternativa, mas vale lembrar que podemos melhorar o desempenho.

Compartilhar este post


Link para o post
Compartilhar em outros sites

O oracle é case sensitive, 'NOVO' é diferente de 'novo' ou de 'Novo'. O uso do UPPER e LOWER resolve seu problema, mas se a tabela é muito grande, pode ocorrer perda de performance. Uma boa prática seria adotar um padrão de gravação no seu banco de dados, tudo minusculo ou tudo maiusculo. Se isso for possível, resolverá seus problemas neste tipo de busca.

Compartilhar este post


Link para o post
Compartilhar em outros sites

O LIKE já uma busca ineficiente pois faz FULL TABLE SCAN.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Creio que sim , não conheço este tipo de índice a fundo, mas creio que resolveria sim.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.