Contenido de esta guía
Qué hace LIKE
LIKE comprueba si un texto encaja en un patrón. Se utiliza dentro de condiciones como WHERE y suele combinar texto literal con dos comodines:
%: cero, uno o muchos caracteres._: exactamente un carácter.
Los comodines no significan «buscar algo parecido». Describen posiciones concretas del texto que pueden variar.
Cómo leer los patrones
| Patrón | Significado | Ejemplo que encaja |
|---|---|---|
'Mon%' | Empieza por Mon | Monitor 24 |
'%USB%' | Contiene USB | Cable USB-C |
'Monitor __' | Monitor, espacio y dos caracteres | Monitor 24 |
'%o' | Termina en o | Ratón no encaja; Altavoz tampoco |
Predice la posición de los comodines. Un % al principio impide usar un prefijo fijo para acotar la búsqueda en muchos índices.
Ejemplo guiado: productos de la familia Monitor
SELECT nombre, precio
FROM productos
WHERE nombre LIKE 'Monitor %'
ORDER BY nombre;| nombre | precio |
|---|---|
| Monitor 24 | 179,0 |
| Monitor 27 | 249,0 |
El espacio después de «Monitor» forma parte del patrón. El % permite cualquier continuación, incluida una cadena vacía.
Mayúsculas, minúsculas y colaciones
No supongas que LIKE 'monitor%' encontrará siempre «Monitor 24». La sensibilidad a mayúsculas depende del motor y de la configuración de comparación. PostgreSQL ofrece ILIKE como extensión para coincidencia sin distinguir mayúsculas; SQLite aplica por defecto una comparación sin distinción para letras ASCII, pero no para todo Unicode.
Cuando la aplicación necesite una regla lingüística concreta, define y prueba la colación o la estrategia de normalización en el motor real.
Buscar los símbolos % y _ como texto
Si los datos pueden contener los propios comodines, necesitas escaparlos. La sintaxis exacta y el carácter de escape deben comprobarse en tu motor. No concatenes directamente texto introducido por una persona dentro del patrón: utiliza parámetros y decide si esos caracteres deben actuar como comodines o como texto literal.
Errores frecuentes
Usar = con un comodín
nombre = 'Mon%' busca literalmente los cuatro caracteres «Mon%». Para interpretar el comodín debes usar LIKE.
Empezar siempre por %
'%texto%' es cómodo, pero puede obligar al motor a revisar muchas filas. Utiliza el patrón más específico que resuelva la necesidad real.
Práctica guiada
Busca cables por prefijo
Muestra nombre y stock de los productos cuyo nombre empiece exactamente por «Cable». Ordena alfabéticamente.
% después de «Cable».nombre LIKE 'Cable%'.Solución razonada
SELECT nombre, stock
FROM productos
WHERE nombre LIKE 'Cable%'
ORDER BY nombre;La consulta devuelve una fila: Cable USB-C, con stock 30. El patrón no necesita un comodín inicial porque la coincidencia debe comenzar por «Cable».
Compatibilidad entre motores
LIKE, % y _ están ampliamente disponibles. La sensibilidad a mayúsculas, las colaciones, el escape y las alternativas para expresiones regulares cambian. Prueba siempre patrones representativos en el motor y la configuración reales.
Qué debes recordar
%representa cualquier secuencia;_, un carácter.- El lugar del comodín cambia la intención del filtro.
- Mayúsculas y acentos dependen del motor y la colación.
- Los patrones introducidos por usuarios deben parametrizarse y tratar los comodines de forma consciente.