El jue, 07-11-2019 a las 09:32 -0500, MSc. Carlos Pollan E escribió:
BUe día colegas.
Resulta que estoy desarrollando un proyecto en laravel y necesito
hacer
unas consultas.
Todas las consultas se realizan bien, hasta que quiero utilizar el
LIKE
%%. Me explico:
Hasta donde conozco y he probado en MySql las consultas con LIKE son
"case-sensitive" pero en Postgres al parecer la cosa no es así, o no
se
cómo se hace y ahí es donde entran ustedes (los que conocen y&o
traban
con postgres como es el caso de mi amigo y nunca olvidado Fumero
jjj).
¿Todavía existes, hermano? ;-)
A ver. Hace milenios que no toco MySQL, así que te hablaré solo de
PostgreSQL.
En PostgreSQL el like es case sensitive, y el ilike no.
Por ejemplo, una búsqueda como:
select * from generales
where ape2 like 'Fumero'
me encontrará en la base de datos; si pongo where ape2 like 'fumero' ya
no me encontrará, pues la expresión de búsqueda no comienza con la
mayúscula, y el apellido la lleva. Si lo cambio por
where ape2 ilike 'fumero'
sí me encontrará, pues le dará lo mismo si está en mayúsculas o
minúsculas.
Si mando a buscar con
select * from generales
where ape2 like 'Fumero'
y en el campo ape2 estoy como 'García Fumero' no me encontrará ni con
el ilike, pues la cadena de búsqueda tiene otras cosas aparte del
Fumero. Ahí es donde entra a jugar el %.
Puedo sustituir la expresión de búsqueda por
where ape2 like '%Fumero'y debe encontrarme (no me importa la subcadena
de delante), o poner where ape2 ilike '%fumero'.
Si pongo la expresión de búsqueda con Fumero% eso indicará que no le
importa cómo termine el contenido del campo de búsqueda, ya sea 'Fumero
el de siempre' o simplemente 'Fumero'. Y si pongo '%Fumero%'
encontrará
la subcadena 'Fumero' aunque el contenido del campo sea 'el viejo
Fumero de siempre de la lista'. ;-)
--
M.Sc. Alberto García Fumero
Usuario Linux 97 138, registrado 10/12/1998
http://interese.cubava.cu
No son las horas que pones en tu trabajo lo que cuenta, sino el trabajo
que pones en esas horas.