https://guru99.es/wildcards/
¿Qué son comodines?
Los comodines son caracteres que ayudan a buscar datos que coinciden con criterios complejos. Los comodines se utilizan junto con el operador de comparación LIKE o el operador de comparación NOT LIKE.
¿Por qué usar WildCards?
Si está familiarizado con el uso del SQL, puede pensar que puede buscar datos complejos utilizando la cláusula SEELCT y WHERE. Entonces, ¿por qué usar comodines?
Antes de responder a esa pregunta, veamos un ejemplo. Supongamos que el departamento de mercadotecnia de la biblioteca de videos Myflix llevó a cabo promociones de mercadotecnia en la ciudad de Texas y desea obtener algunos comentarios sobre la cantidad de miembros.
registrado desde Texas, puede usar la siguiente instrucción SELECT junto con la cláusula WHERE para obtener la información deseada.
SELECCIONE * FROM miembros WHERE postal_address = ‘Austin, TX’ O postal_address = Dallas, TX O postal_address = Iola, TX O postal_adress = Houston, TX ';
1
SELECCIONE * FROM miembros WHERE postal_address = ‘Austin, TX’ O postal_address = Dallas, TX O postal_address = Iola, TX O postal_adress = Houston, TX ';
Como puede ver en la consulta anterior, la cláusula “WHERE” se vuelve compleja. Sin embargo, el uso de comodines simplifica la consulta, ya que podemos usar algo simple como el guión que se muestra a continuación.
SELECCIONE * FROM miembros WHERE postal_address como ‘% TX’;
1
SELECCIONE * FROM miembros WHERE postal_address como ‘% TX’;
En resumen, los comodines nos permiten desarrollar motores de búsqueda de energía en nuestras aplicaciones basadas en datos.
Tipos de comodines
% el porcentaje
% el carácter de porcentaje se usa para especificar un patrón de cero (0) o más caracteres . Tiene la siguiente sintaxis básica.
Instrucciones SELECT … WHERE fieldname LIKE ‘xxx%’;
1
Instrucciones SELECT … WHERE fieldname LIKE ‘xxx%’;
AQUÍ
“Instrucción SELECT …” es el comando SQL SELECT estándar.
“DONDE” es la palabra clave utilizada para aplicar el filtro.
“LIKE” es el operador de comparación que se utiliza junto con comodines
‘xxx’ es cualquier patrón de inicio especificado, como un solo carácter o más, y “%” coincide con cualquier número de caracteres a partir de cero (0).
Para apreciar completamente la afirmación anterior, veamos un ejemplo práctico
Supongamos que queremos obtener todas las películas que tienen la palabra “código” como parte del título, usaríamos el comodín de porcentaje para realizar una coincidencia de patrón en ambos lados de la palabra “código”. A continuación se encuentra la declaración de SQL que se puede utilizar para lograr los resultados deseados.
SELECCIONE * FROM películas WHERE title LIKE ‘% code%’;
1
SELECCIONE * FROM películas WHERE title LIKE ‘% code%’;
Ejecutar el script anterior en MySQL workbench contra myflixdb nos da los resultados que se muestran a continuación.
movie_id título director añorelado categoria ID
4 Código Nombre Negro Edgar Jimz 2010 NULO
7 Código da Vinci NULO NULO 6
Observe que incluso si la palabra clave de búsqueda “código” aparece al principio o al final del título, aún se devuelve en nuestro conjunto de resultados. Esto se debe a que nuestro código incluye cualquier número de caracteres al principio y luego coincide con el patrón “código” seguido de cualquier número de caracteres al final.
Primis Player Placeholder
Modifiquemos ahora nuestro script anterior para incluir el comodín porcentual al principio de los criterios de búsqueda solamente.
SELECCIONE * FROM películas WHERE title LIKE ‘% code’;
1
SELECCIONE * FROM películas WHERE title LIKE ‘% code’;
Ejecutar el script anterior en MySQL workbench contra myflixdb nos da los resultados que se muestran a continuación.
movie_id título director añorelado categoria ID
7 Código da Vinci NULO NULO 6
Tenga en cuenta que solo se ha devuelto un registro de la base de datos. Esto se debe a que nuestro código coincide con cualquier cantidad de caracteres al principio del título de la película y solo obtiene registros que finalizan con el patrón “código”.
Pasemos ahora el comodín porcentual al final del patrón especificado para que coincida. El script modificado se muestra a continuación.
SELECCIONE * FROM películas WHERE title LIKE ‘code%’;
1
SELECCIONE * FROM películas WHERE title LIKE ‘code%’;
Ejecutar el script anterior en MySQL workbench contra myflixdb nos da los resultados que se muestran a continuación.
movie_id título director añorelado categoria ID
4 Código Nombre Negro Edgar Jimz 2010 NULO
Observe que solo se ha devuelto un registro de la base de datos. Esto se debe a que nuestro código coincide con todos los títulos que comienzan con el patrón “código” seguido de cualquier cantidad de caracteres.
_ comodín de guión bajo
El comodín de guión bajo se usa para unir exactamente un personaje . Supongamos que queremos buscar todas las películas que se lanzaron en los años 200x donde x es exactamente un personaje que podría tener algún valor. Usaríamos la carta comodín de guión bajo para lograr eso. El script a continuación selecciona todas las películas que se lanzaron en el año “200x”
SELECCIONE * FROM películas WHERE añoreleased LIKE ‘200_’;
1
SELECCIONE * FROM películas WHERE añoreleased LIKE ‘200_’;
Ejecutar el script anterior en MySQL workbench contra myflixdb nos da los resultados que se muestran a continuación.
movie_id título director añorelado categoria ID
2 Olvidando a Sarah Marshal Nicholas Stoller 2008 2
9 Honey Mooners Jhon Shultz 2005 8
Tenga en cuenta que solo las películas que tienen 200 seguidos por cualquier personaje en el campo año publicado se han devuelto en nuestro conjunto de resultados. Esto se debe a que el comodín de subrayado coincide con el patrón 200 seguido de cualquier carácter individual
Diferente a
El operador lógico NOT se puede usar junto con los comodines para devolver filas que no coinciden con el patrón especificado.
Supongamos que queremos obtener películas que no se lanzaron en el año 200x. Utilizaríamos el operador lógico NOT junto con el comodín de guión bajo para obtener nuestros resultados. A continuación está el script que hace eso.
SELECCIONE * DE películas DONDE año se lanzó NO ME GUSTA ‘200_’;
1
SELECCIONE * DE películas DONDE año se lanzó NO ME GUSTA ‘200_’;
movie_id título director añorelado categoria ID
1 Piratas del Caribe 4 Rob Marshall 2011 1
4 Código Nombre Negro Edgar Jimz 2010 NULO
8 Underworld-Awakeninh Michahel Eal 2012 6
Tenga en cuenta que solo las películas que no comienzan con 200 en el año publicado han sido devueltas en nuestro conjunto de resultados. Esto se debe a que usamos el operador lógico NOT en nuestra búsqueda de patrón comodín.
Palabra clave de escape
La palabra clave ESCAPE se usa para escapar de los caracteres de coincidencia de patrones , como el porcentaje (%) y el guión bajo (_) si forman parte de los datos.
Supongamos que queremos verificar la cadena “67%” que podemos usar;
LIKE '67 # %% ‘ESCAPE’ # ';
1
LIKE '67 # %% ‘ESCAPE’ # ';
Si queremos buscar la película “67% culpable”, podemos usar la secuencia de comandos que se muestra a continuación para hacerlo.
SELECCIONE * FROM películas DONDE el título LIKE '67 # %% ‘ESCAPE’ # ';
1
SELECCIONE * FROM películas DONDE el título LIKE '67 # %% ‘ESCAPE’ # ';
Tenga en cuenta el doble ” %% ” en la cláusula LIKE, el primero en rojo ” % ” se trata como parte de la cadena que se buscará. El otro se usa para coincidir con cualquier cantidad de caracteres que siguen.
La misma consulta también funcionará si usamos algo así como
SELECCIONE * FROM películas DONDE el título LIKE '67 = %% ‘ESCAPE’ = ';
1
SELECCIONE * FROM películas DONDE el título LIKE '67 = %% ‘ESCAPE’ = ';
Resumen
Like & Wildcards herramientas poderosas que ayudan a buscar datos que coincidan con patrones complejos.
Hay una serie de comodines que incluyen el porcentaje, subrayado y charlist (no soportados por MySQL) entre otros
El comodín de porcentaje se usa para coincidir con cualquier número de caracteres comenzando desde cero (0) y más.
El comodín de guión bajo se usa para unir exactamente un personaje.