3.3.4.7 Mintaillesztés
A MySQL szabványos SQL-mintaillesztést, valamint egy olyan kiterjesztett reguláris kifejezéseken alapuló mintaillesztést biztosít, amelyet a Unix segédprogramok, például a vi, grep és sed használnak.
 Az SQL mintaillesztés lehetővé teszi, hogy a _ segítségével bármely egyetlen karakterrel, a % segítségével pedig tetszőleges számú karakterrel (beleértve a nulla karaktereket is) egyezzen meg. A MySQL-ben az SQL-minták alapértelmezés szerint nem érzékenyek a nagy- és kisbetűkre. Néhány példa itt látható. Ne használjon = vagy <> karaktert, amikor SQL-mintákat használ. Használja helyette a LIKE vagy NOT LIKE összehasonlító operátorokat. 
 A b kezdetű nevek kereséséhez: 
mysql> SELECT * FROM pet WHERE name LIKE 'b%';+--------+--------+---------+------+------------+------------+| name | owner | species | sex | birth | death |+--------+--------+---------+------+------------+------------+| Buffy | Harold | dog | f | 1989-05-13 | NULL || Bowser | Diane | dog | m | 1989-08-31 | 1995-07-29 |+--------+--------+---------+------+------------+------------+ fy végződésű nevek kereséséhez: 
mysql> SELECT * FROM pet WHERE name LIKE '%fy';+--------+--------+---------+------+------------+-------+| name | owner | species | sex | birth | death |+--------+--------+---------+------+------------+-------+| Fluffy | Harold | cat | f | 1993-02-04 | NULL || Buffy | Harold | dog | f | 1989-05-13 | NULL |+--------+--------+---------+------+------------+-------+ w-t tartalmazó nevek kereséséhez: 
mysql> SELECT * FROM pet WHERE name LIKE '%w%';+----------+-------+---------+------+------------+------------+| name | owner | species | sex | birth | death |+----------+-------+---------+------+------------+------------+| Claws | Gwen | cat | m | 1994-03-17 | NULL || Bowser | Diane | dog | m | 1989-08-31 | 1995-07-29 || Whistler | Gwen | bird | NULL | 1997-12-09 | NULL |+----------+-------+---------+------+------------+------------+ Pontosan öt karaktert tartalmazó nevek kereséséhez használja a _ mintakarakter öt példányát: 
mysql> SELECT * FROM pet WHERE name LIKE '_____';+-------+--------+---------+------+------------+-------+| name | owner | species | sex | birth | death |+-------+--------+---------+------+------------+-------+| Claws | Gwen | cat | m | 1994-03-17 | NULL || Buffy | Harold | dog | f | 1989-05-13 | NULL |+-------+--------+---------+------+------------+-------+ A MySQL által biztosított másik típusú mintaillesztés a kiterjesztett reguláris kifejezéseket használja. Az ilyen típusú minták egyezésének vizsgálatakor használja a REGEXP_LIKE() függvényt (vagy a REGEXP vagy RLIKE operátorokat, amelyek a REGEXP_LIKE() szinonimái). 
A következő lista a kiterjesztett reguláris kifejezések néhány jellemzőjét írja le:
- 
.bármely egyetlen karakterrel megegyezik.
- 
A karakterosztály bármely, zárójelben lévő karakterre illeszkedik. Például amegfelel aa,bvagyckaraktereknek. Karaktertartományok megnevezéséhez használjon kötőjelet. Abármely betűre, míg abármely számjegyre illik.
- 
*megfelel az előtte lévő dolog nulla vagy több példányának. Például ax*axkarakterek tetszőleges számával, a*a számjegyek tetszőleges számával, a.*pedig a bárminek tetszőleges számával egyezik meg.
- 
A reguláris kifejezés mintaillesztése akkor sikeres, ha a minta a vizsgált értékben bárhol egyezik. (Ez eltér a LIKEmintaillesztéstől, amely csak akkor jár sikerrel, ha a minta a teljes értékre illik).
- 
Egy minta lehorgonyzásához, hogy annak a vizsgált érték elejére vagy végére kell illeszkednie, használjon ^-t a minta elején vagy$-t a minta végén.
 A kiterjesztett reguláris kifejezések működésének bemutatásához a korábban bemutatott LIKE lekérdezéseket itt átírjuk a REGEXP_LIKE() használatára. 
 A b kezdetű nevek megtalálásához használja a ^ szót a név elejére: 
mysql> SELECT * FROM pet WHERE REGEXP_LIKE(name, '^b');+--------+--------+---------+------+------------+------------+| name | owner | species | sex | birth | death |+--------+--------+---------+------+------------+------------+| Buffy | Harold | dog | f | 1989-05-13 | NULL || Bowser | Diane | dog | m | 1979-08-31 | 1995-07-29 |+--------+--------+---------+------+------------+------------+ Ha a reguláris kifejezések összehasonlítását eset-érzékenységre akarja kényszeríteni, használjon eset-érzékeny összevetést, vagy használja a BINARY kulcsszót, hogy az egyik karakterláncot bináris karakterlánccá tegye, vagy adja meg a c egyezésvezérlő karaktert. Ezen lekérdezések mindegyike csak a név elején lévő b kisbetűs karakterekre illeszkedik: fy-val végződő nevek megtalálásához használja a $-t a név végére való illesztéshez: 
mysql> SELECT * FROM pet WHERE REGEXP_LIKE(name, 'fy$');+--------+--------+---------+------+------------+-------+| name | owner | species | sex | birth | death |+--------+--------+---------+------+------------+-------+| Fluffy | Harold | cat | f | 1993-02-04 | NULL || Buffy | Harold | dog | f | 1989-05-13 | NULL |+--------+--------+---------+------+------------+-------+ Ha w-t tartalmazó neveket szeretne találni, használja ezt a lekérdezést: 
 Pontosan öt karaktert tartalmazó nevek kereséséhez használja a ^ és $ karaktereket a név elejére és végére, valamint a . öt példányát a kettő között: 
mysql> SELECT * FROM pet WHERE REGEXP_LIKE(name, '^.....$');+-------+--------+---------+------+------------+-------+| name | owner | species | sex | birth | death |+-------+--------+---------+------+------------+-------+| Claws | Gwen | cat | m | 1994-03-17 | NULL || Buffy | Harold | dog | f | 1989-05-13 | NULL |+-------+--------+---------+------+------------+-------+ Az előző lekérdezést a { (“repeat-n}n-times”) operátorral is megírhatja: 
mysql> SELECT * FROM pet WHERE REGEXP_LIKE(name, '^.{5}$');+-------+--------+---------+------+------------+-------+| name | owner | species | sex | birth | death |+-------+--------+---------+------+------------+-------+| Claws | Gwen | cat | m | 1994-03-17 | NULL || Buffy | Harold | dog | f | 1989-05-13 | NULL |+-------+--------+---------+------+------------+-------+A reguláris kifejezések szintaxisáról bővebben lásd a 12.8.2. szakasz “Reguláris kifejezések” című fejezetét.