MySQL Comodines: Me gusta, No me gusta, Escape, ( %), ( _ )
⚡ Resumen inteligente
MySQL Los comodines permiten realizar búsquedas basadas en patrones al combinar los operadores LIKE y NOT LIKE con caracteres especiales. Esto explica los comodines de porcentaje y guion bajo, la palabra clave ESCAPE, las consultas prácticas en la base de datos myflixdb y las consideraciones de rendimiento.

¿Qué son MySQL ¿Comodines?
MySQL Comodines Los caracteres comodín son caracteres especiales que ayudan a buscar datos que coincidan con un patrón complejo en lugar de un valor exacto. Siempre se utilizan junto con el operador de comparación LIKE o con el operador de comparación NOT LIKE.
MySQL Admite dos caracteres comodín, y cada uno responde a una pregunta diferente sobre sus datos.
| Comodín | Significado | Patrón de ejemplo | Cerillas |
|---|---|---|---|
| % | Cero (0) o más caracteres | '%código%' | Code Nombre Black, Davinci Code |
| _ | Exactamente un carácter | '200_' | de 2005 |
Ahora que los dos personajes están definidos, la siguiente sección explica por qué vale la pena aprender sobre ellos.
¿Por qué usar comodines en? MySQL?
Si estás familiarizado con SQL, quizás pienses que ya puedes buscar cualquier dato complejo usando SELECT y la cláusula WHERE. Entonces, ¿por qué usar comodines?
Antes de responder a esa pregunta, veamos un ejemplo. Supongamos que el departamento de marketing de la videoteca Myflix realizó promociones en Texas y desea obtener información sobre la cantidad de miembros registrados desde ese estado. Puede usar la siguiente instrucción SELECT junto con la cláusula WHERE para obtener la información deseada.
SELECT * FROM members WHERE postal_address = 'Austin, TX' OR postal_address = 'Dallas, TX' OR postal_address = 'Iola, TX' OR postal_address = 'Houston, TX';
Como puede ver en la consulta anterior, el "Dónde cláusulaLa consulta se vuelve larga y compleja: cada nueva ciudad debe agregarse manualmente, y cualquier dirección mal escrita se excluye automáticamente. El uso de comodines simplifica la consulta, ya que un solo patrón abarca todas las ciudades del estado.
SELECT * FROM members WHERE postal_address LIKE '%TX';
En resumen, los caracteres comodín permiten incorporar potentes funciones de búsqueda en aplicaciones basadas en datos con mucho menos código SQL. La siguiente sección analiza cada carácter comodín en detalle.
Tipos de MySQL Comodines
% – El comodín de porcentaje
El carácter de porcentaje (%) se utiliza para especificar un patrón de cero (0) o más caracteresTiene la siguiente sintaxis básica.
SELECT * FROM table_name WHERE fieldname LIKE 'xxx%';
AQUÍ:
- "Instrucción SELECT” es el comando SQL SELECT estándar.
- “WHERE” es la palabra clave que se utiliza para aplicar el filtro.
- “LIKE” es el operador de comparación que se utiliza junto con los comodines.
- 'xxx' es cualquier patrón especificado, como un solo carácter o más, y "%" coincide con cualquier número de caracteres a partir de cero (0).
Para comprender mejor lo anterior, veamos un ejemplo práctico. Supongamos que queremos obtener todas las películas que contengan la palabra "código" en su título. Utilizaríamos el comodín de porcentaje a ambos lados de la palabra "código" para realizar una coincidencia de patrones en cualquier parte del título.
SELECT * FROM movies WHERE title LIKE '%code%';
Ejecutando el script anterior en MySQL Banco de trabajo Al realizar la búsqueda en la base de datos myflixdb, obtenemos los resultados que se muestran a continuación.
| id_película | título | director | año_de lanzamiento | categoria ID |
|---|---|---|---|---|
| 4 | Code Nombre Negro | Edgar Jimz | 2010 | NULL |
| 7 | Da Vinci Code | NULL | NULL | 6 |
Observe que la palabra clave de búsqueda "código" se devuelve tanto si aparece al principio como al final del título. Esto se debe a que el patrón permite cualquier número de caracteres antes de "código" y cualquier número de caracteres después.
Ahora vamos a modificar el script para que el comodín de porcentaje aparezca solo al principio de los criterios de búsqueda.
SELECT * FROM movies WHERE title LIKE '%code';
Ejecutando el script anterior en MySQL La comprobación realizada en Workbench con la base de datos myflixdb nos proporciona los resultados que se muestran a continuación.
| id_película | título | director | año_de lanzamiento | categoria ID |
|---|---|---|---|---|
| 7 | Da Vinci Code | NULL | NULL | 6 |
Observe que solo se ha devuelto un registro. El patrón coincide con cualquier número de caracteres al principio del título, pero requiere que el título esté final con “código”.
Ahora, coloquemos el comodín de porcentaje al final del patrón. El script modificado se muestra a continuación.
SELECT * FROM movies WHERE title LIKE 'code%';
Ejecutando el script anterior en MySQL La comprobación realizada en Workbench con la base de datos myflixdb nos proporciona los resultados que se muestran a continuación.
| id_película | título | director | año_de lanzamiento | categoria ID |
|---|---|---|---|---|
| 4 | Code Nombre Negro | Edgar Jimz | 2010 | NULL |
Solo se devuelve un registro, porque este patrón coincide con cada título que comienza con “código” seguido de cualquier número de caracteres. Por lo tanto, la posición del símbolo % determina el significado de la búsqueda.
💡 Consejo: Un patrón como 'code%' aún puede usar un índice en la columna del título, mientras que '%code%' no puede. Un comodín de porcentaje inicial obliga MySQL para escanear cada fila, así que mantenga el comodín a la derecha siempre que la búsqueda lo permita.
_ – El comodín de guion bajo
El comodín de guión bajo se utiliza para coincidir exactamente con un carácterSupongamos que queremos encontrar todas las películas estrenadas en el año 200x, donde x es un único carácter que puede tomar cualquier valor. El siguiente script selecciona todas las películas estrenadas en el año “200x”.
SELECT * FROM movies WHERE year_released LIKE '200_';
Ejecutando el script anterior en MySQL La comprobación realizada en Workbench con la base de datos myflixdb nos proporciona los resultados que se muestran a continuación.
| id_película | título | director | año_de lanzamiento | categoria ID |
|---|---|---|---|---|
| 2 | Olvidando a Sarah Marshal | Nicolás Stoller | 2008 | 2 |
| 9 | Honey moonERS | Jhon Shultz | 2005 | 8 |
Tenga en cuenta que solo se devuelven las películas cuyo valor year_released sea 200 seguido de cualquier carácter. A diferencia del comodín de porcentaje, el guion bajo reserva un espacio para un solo carácter.
NO COMO con comodines
El operador lógico NOT se puede usar junto con comodines para devolver las filas que no se cumplen. No coincide con el patrón especificado.
Supongamos que queremos las películas que no se estrenaron en el año 200x. Combinamos el operador lógico NOT con el comodín de guion bajo, como se muestra a continuación.
SELECT * FROM movies WHERE year_released NOT LIKE '200_';
| id_película | título | director | año_de lanzamiento | categoria ID |
|---|---|---|---|---|
| 1 | Piratas del Caribe 4 | Rob Marshall | 2011 | 1 |
| 4 | Code Nombre Negro | Edgar Jimz | 2010 | NULL |
| 8 | Inframundo-Awakencont | Michael Eal | 2012 | 6 |
Solo se devuelven las películas que no siguen el patrón 200x, porque NOT invierte el resultado de la comparación de comodines. Tenga en cuenta que las filas que contienen un NULL Los valores nunca son devueltos por LIKE o NOT LIKE, ya que NULL es desconocido en lugar de desigual.
Palabra clave ESCAPE
La palabra clave ESCAPE se utiliza para caracteres de coincidencia de patrones de escape como el porcentaje (%) y el guion bajo (_) cuando forman parte de los datos mismos.
Supongamos que queremos buscar la cadena literal “67%”. Declaramos un carácter de escape y lo colocamos inmediatamente antes del carácter que debe leerse como dato.
LIKE '67#%%' ESCAPE '#';
Si queremos encontrar la película “67% Culpable”, podemos usar el guion que se muestra a continuación.
SELECT * FROM movies WHERE title LIKE '67#%%' ESCAPE '#';
Observe el doble “%%” en la cláusula LIKE. El primero va precedido del carácter de escape (#) y, por lo tanto, se trata como parte de la cadena que se busca. El segundo conserva su función de comodín y coincide con cualquier número de caracteres que le sigan.
Cualquier carácter puede servir como carácter de escape, por lo que la misma consulta también funciona con el signo de igual.
SELECT * FROM movies WHERE title LIKE '67=%%' ESCAPE '=';
Los comodines cubren muy bien los patrones simples, pero algunas búsquedas requieren reglas más expresivas. La comparación que se muestra a continuación ilustra dónde reside el límite.
MySQL Comodines vs. expresiones regulares: ¿cuál debería usar?
MySQL Admite solo dos caracteres comodín. Las listas de caracteres como [ac], que algunos otros motores de bases de datos aceptan dentro de LIKE, no son compatibles. Cuando una búsqueda necesita rangos de caracteres, alternancia o anclaje, operador REGEXP es la elección correcta
| Criterio | LIKE con comodines | REGEXP |
|---|---|---|
| Poder del patrón | Solo dos símbolos: % y _ | Clases de personajes, rangos, alternancia, repetición |
| Uso típico | Búsquedas por prefijo, sufijo o "contiene" | Validación, coincidencia compleja, múltiples alternativas |
| Uso del índice | Posible cuando el patrón no comienza con % | Nunca utiliza un índice |
| Legibilidad | Simple para principiantes | Curva de aprendizaje más pronunciada |
Por regla general, recurra primero a LIKE: es más fácil de leer y es el único de los dos que puede beneficiarse de un índice. Pase a REGEXP cuando un solo patrón deba expresar varias alternativas, por ejemplo, hacer coincidir cada título que comience con un dígito. Ambos operadores son comparaciones de solo lectura, por lo que ninguno cambia las filas devueltas por INSERT or ACTUALIZAR declaraciones; solo filtran lo que selecciona la cláusula WHERE.
