Cikkkönyvtár
Hogyan lehet reguláris kifejezéseket illeszteni a MySQL adatbázisban ? Hogyan kell használni a MySQL reguláris kifejezéseket?
MySQL reguláris kifejezések
Az előző fejezetekben megtanultuk, hogy a MySQL használhatja a LIKE …% függvényt fuzzy illesztéshez.
A MySQL más reguláris kifejezések egyeztetését is támogatja, a REGEXP operátort a MySQL-ben használják a reguláris kifejezések egyeztetésére.
Ha ismeri a PHP-t vagy a Perl-t, akkor ez nagyon egyszerű, mivel a MySQL reguláris kifejezés-illesztése hasonló ezeknek a szkripteknek.
A következő táblázat szabályos mintái alkalmazhatók a REGEXP operátorra.
| mód | leírás |
|---|---|
| ^ | Megfelel a bemeneti karakterlánc elejének.^ a '\n' vagy '\r' utáni pozícióval is megegyezik, ha a RegExp objektum többsoros tulajdonsága be van állítva. |
| $ | Megfelel a bemeneti karakterlánc végének.Ha a RegExp objektum többsoros tulajdonsága be van állítva, a $ a '\n' vagy '\r' előtti pozícióval is megegyezik. |
| . | Bármely karakterrel egyezik, kivéve a „\n” karaktert.A '\n' karaktert is beleértve, használjon olyan mintát, mint a '[.\n]'. |
| [...] | karakterek gyűjteménye.Megfelel a benne szereplő karakterek bármelyikének.Például az „[abc]” egyezne a „plai„a” az n-ben”. |
| [^…] | Negatív karakterkészlet.A nem szereplő karakterekkel megegyezik.Például a '[^abc]' megfelel a 'p'-nek a "plain"-ben. |
| p1|p2|p3 | Megfelel a p1-nek vagy a p2-nek vagy a p3-nak.Például a 'z|étel' egyezne a "z" vagy az "étel" kifejezéssel. A '(z|f)ood' megfelel a "zood" vagy a "food" kifejezésnek. |
| * | Az előző részkifejezéshez nulla vagy többször egyezik.Például a zo* megegyezik a "z"-vel és a "zoo"-val. * egyenértékű a következővel: {0,}. |
| + | Egy vagy többször megegyezik az előző részkifejezéssel.Például a „zo+” egyezne a „zo”-val és „zoo”-val, de nem a „z”-vel. + egyenértékű a következővel: {1,}. |
| {nem} | n egy nem negatív egész szám.Pontosan n-szer egyezik.Például az „o{2}” nem egyezik a „Bob” „o”-jával, de az „étel”-ben mindkét o-val megegyezik. |
| {n, m} | Az m és az n is nemnegatív egész szám, ahol n <= m.Legalább n-szer és legfeljebb m-szer egyezik. |
Példa
A fenti reguláris követelmények megértése után saját követelményeink szerint írhatunk SQL utasításokat reguláris kifejezésekkel.Az alábbiakban felsorolunk néhány apró példát (tábla neve: person_tbl ), hogy jobban megértsük:
Keresse meg a névmezőben az „st” betűvel kezdődő összes adatot:
mysql> SELECT name FROM person_tbl WHERE name REGEXP '^st';
Keresse meg az összes olyan adatot, amely „ok”-ra végződik a névmezőben:
mysql> SELECT name FROM person_tbl WHERE name REGEXP 'ok$';
Keresse meg a „mar” karakterláncot tartalmazó összes adatot a névmezőben:
mysql> SELECT name FROM person_tbl WHERE name REGEXP 'mar';
Keresse meg az összes adatot a névmezőben, amely magánhangzó karakterrel kezdődik vagy az „ok” karakterlánccal végződik:
mysql> SELECT name FROM person_tbl WHERE name REGEXP '^[aeiou]|ok$';
Remélhetőleg hasznosnak találod a Chen Weiliang blogján ( https://www.chenweiliang.com/ ) megosztott "Hogyan egyeztessük a reguláris kifejezéseket MySQL adatbázisban? MySQL regexp használata, mint például" című cikket .
Nyugodtan oszd meg a cikk linkjét: https://www.chenweiliang.com/cwl-492.html
