Latest web development tutorials

MySQL expresiones regulares

En la sección anterior hemos aprendido a través de la MySQL como ...% de coincidencia aproximada.

MySQL también es compatible con otros expresiones regulares, el operador REGEXP MySQL para utilizar expresiones regulares.

Si conoces PHP o Perl, a continuación, el funcionamiento es muy sencillo, ya que MySQL de expresiones regulares similares a estas secuencias de comandos.

En la tabla siguiente modo normal que puede ser utilizado en el operador REGEXP.

modo descripción
^ Coincide con el principio de la cadena. Si se establece la propiedad Multiline del objeto RegExp, ^ también partidos '\ n' posición o '\ r' después.
$ Coincide con el extremo de entrada de la cadena. Si se establece el objeto RegExp propiedad Multiline, $ también hacer juego la posición '\ n' o '\ r' antes.
. Coincide con cualquier carácter excepto "\ n" es. Para hacer coincidir incluyendo '\ n', incluyendo todos los caracteres, como el uso de '[. \ N]' modo.
[...] Conjunto de caracteres. Coincide con cualquier carácter incluido. Por ejemplo, '[abc] "coincide con" formato "en la" a ".
[^ ...] juego de caracteres negativos. Coincide con cualquier carácter que no está incluido. Por ejemplo, '[^ abc] "coincidencias" normal "en el" p ".
p1 | p2 | p3 p1 partido, p2, p3 o. Por ejemplo, 'z | alimentos "puede coincidir con la" z "o" alimento ". '(Z | f) ood' coincidirá con "Zood" o "alimento".
* Coincide con las anteriores subexpresión cero o más veces. Por ejemplo, una zo * puede coincidir con la "z" y "zoo". * Equivalente a {0,}.
+ Coincide con las anteriores subexpresión una o más veces. Por ejemplo, 'zo +' coincidirá con "zo" y "zoo", pero no puede coincidir con el "z". + Es equivalente a {1}.
{N} n es un número entero no negativo. Coincidencia de los tiempos n determinados. Por ejemplo, "o {2} 'no coincide con el" Bob "en la' o ', pero puede coincidir con el" alimento "de las dos juntas.
{N, m} m y n son números enteros no negativos, en los que n <= m. Al menos n veces y coincidía con m veces.

Ejemplos

Una vez que conozca las necesidades más regulares, podemos estar más a sus propias necesidades para escribir sentencia SQL con una expresión regular. A continuación, se enumeran algunos ejemplos pequeñas (nombre de la tabla: person_tbl) para profundizar nuestra comprensión:

Encuentra todo el nombre del campo de datos al principio 'st' con:

mysql> SELECT name FROM person_tbl WHERE name REGEXP '^st';

Encuentra todo el nombre del campo de datos de 'ok' para el final:

mysql> SELECT name FROM person_tbl WHERE name REGEXP 'ok$';

Encontrar un campo de nombre contiene cadenas de todos los datos 'mar':

mysql> SELECT name FROM person_tbl WHERE name REGEXP 'mar';

Encontrar un campo de nombre, para empezar vocales y con el extremo "bien" de la cadena de todos los datos:

mysql> SELECT name FROM person_tbl WHERE name REGEXP '^[aeiou]|ok$';