PHP/PostgreSQL: Como hacer una consulta con "LIKE" sin "case sensitive"

Hoy tuve este problema: hacer que una búsqueda a través de un formulario que solicita una cadena de texto busque sin importar si está en mayúsculas o minúsculas.

Por defecto el comportamiento del LIKE es "case sensitive" (distingue mayúsculas y minúsculas), lo que al ingresar "OBJETO", "Objeto", "objeto" u "ObJeTo" son cosideradas palabras distintas, con resultados distintos.

Lo que hice fue tomar el valor de búsqueda y convertirlo a "minúsculas", y luego hice lo mismo del lado de la consulta SQL.

Es decir:

$cadenaLower = strtolower($cadenaTexto);
$SQL = $SQL." lower(tabla.campo) LIKE '%$cadenaLower%' ";


No es un gran descubrimiento, pero por lo menos queda documentado para las generaciones futuras y tal vez le pueda ahorrar esos cinco minutos que perdí buscando las funciones ;-)

Ahora, mi pregunta es: como implementar con PostgreSQL una búsqueda fonética?

1 comentario:

Anónimo dijo...

También se puede utilizar "ilike" en PostgreSQL para que "like" no distinga mayúsculas/minúsculas.
La desventaja es que no es compatible con el estándar SQL 92, etc.

Entradas populares