PostgreSQL LIKE
La función de cadena `LIKE` de PostgreSQL se utiliza para hacer coincidir patrones de texto dentro de los valores de las columnas. Te permite buscar secuencias concretas de caracteres en tipos de datos de cadena.
Utilización
La función `LIKE` se utiliza habitualmente en las sentencias `SELECT` para filtrar datos basándose en patrones de texto específicos. Es especialmente útil para encontrar filas en las que el valor de una columna coincide con un patrón determinado.
SELECT column1, column2, ...
FROM table_name
WHERE column_name LIKE pattern;
En esta sintaxis, `nombre_columna LIKE patrón` comprueba si `nombre_columna` coincide con el `patrón` especificado, que puede incluir caracteres comodín como `%` y `_`.
Ejemplos
1. Uso básico con Wildcard %
SELECT *
FROM products
WHERE product_name LIKE 'Apple%';
Este ejemplo recupera todas las filas de la tabla `productos` en las que `nombre_producto` empieza por "Apple".
2. Coincidencia de patrones con comodín _
SELECT customer_id, customer_name
FROM customers
WHERE customer_name LIKE 'J_n%';
Esta consulta selecciona los clientes cuyo `nombre_cliente` empiece por "J", tenga cualquier carácter simple en la segunda posición y vaya seguido de "n".
3. Combinar el operador LIKE con el NOT
SELECT order_id, order_date
FROM orders
WHERE order_status NOT LIKE 'Cancelled%';
Este ejemplo obtiene pedidos de la tabla "pedidos" en los que "estado_pedido" no empieza por "Cancelado".
4. Uso de la cláusula ESCAPE
SELECT comment_id
FROM comments
WHERE comment_text LIKE '100\% sure' ESCAPE '\';
Esta consulta busca comentarios que contengan el texto "100%" literalmente, utilizando la barra invertida `\` para escapar del carácter `%`.
Consejos y buenas prácticas
- Utiliza `%` y `_` con prudencia. El comodín `%` coincide con cualquier secuencia de caracteres, mientras que `_` coincide con un solo carácter.
- Optimiza el rendimiento. Ten cuidado con `%` al principio de los patrones, ya que puede ralentizar el rendimiento de la consulta. Ten en cuenta que los índices no suelen utilizarse cuando el patrón empieza por un comodín.
- Ten en cuenta la distinción entre mayúsculas y minúsculas. Utiliza `ILIKE` para hacer coincidir patrones sin distinguir mayúsculas de minúsculas si es necesario.
- Combínalo con otras condiciones. Utiliza `LIKE` con condiciones `WHERE` adicionales para limitar los resultados de forma eficaz.
- Escapa de los caracteres especiales. Utiliza la cláusula `ESCAPE` para buscar caracteres literales `%` o `_` cuando sea necesario, como se muestra en el ejemplo.
- Explora alternativas. Considera la posibilidad de utilizar `SIMILAR A` para necesidades de concordancia de patrones más complejas, ya que admite expresiones regulares.