MySQL admite operaciones de comparación de patrones que le permiten seleccionar filas sin aplicar un valor de comparación exacto. Para realizar estas comparaciones debe utilicar operadores especiales (LIKE y NOT LIKE) y especificar una cadena que contenga caracteres comodín. El carácter _ compara cualquier carácter y % compara cualquier secuencia de caracteres (incluidas secuencias vacías).
El siguiente patrón compara apellidos que comienzan con W o w:
mysql> SELECT last_name, first_name FROM president
-> WHERE last_name LIKE 'W%';
last_name
first_name
Washington
George
Wilson
Woodrow
La consulta que se muestra en el siguiente fragmento de código ilustra un error habitual. La comparación es errónea porque no utiliza LIKE, sino un patrón con un operador de comparación aritmético:
mysql> SELECT last_name, first_name FROM president
-> WHERE last_name = 'W%';
Empty set (0.00 sec)
La única forma que tenemos de que funcione es que la columna contenga exactamente la caden W% o w%.
El siguiente patrón permite comparar apellidos que contengan W o w en cualquier parte, no sólo al principio:
mysql> SELECT last_name, first_name FROM president
-> WHERE last_name LIKE '%W%';
last_name
first_name
Washington
George
Wilson
Woodrow
Eisenhower
Dwight D.
El siguiente patrón compara apellidos de cuatro caracteres:
mysql> SELECT last_name, fist_name FROM president
-> WHERE last_name LIKE '___';
last_name
first_name
Polk
James K.
Taft
William H.
Ford
Gerald R.
Bush
George H.W.
Bush
George W.