Artiklite kataloog
MySQL andmebaasKuidas regulaaravaldis ühtib?MySQL regexpi moodi kasutamine
MySQL regulaaravaldised
Eelmistes peatükkides oleme õppinud, et MySQL võib olla LIKE...% ähmaseks sobitamiseks.
MySQL toetab ka teiste regulaaravaldiste sobitamist.Regulaaravaldiste sobitamiseks kasutatakse MySQL-is operaatorit REGEXP.
Kui teate PHP-d või Perli, on see üsna lihtne, kuna MySQL-i regulaaravaldise sobitamine on sarnane nende skriptide omadega.
Järgmises tabelis olevaid tavalisi mustreid saab rakendada REGEXP-operaatorile.
| Režiim | kirjeldus |
|---|---|
| ^ | Vastab sisendstringi algusele.^ vastab ka positsioonile pärast '\n' või '\r', kui RegExp objekti atribuut Multiline on määratud. |
| $ | Sobib sisendstringi lõpule.Kui RegExp objekti atribuut Multiline on määratud, vastab $ ka positsioonile enne '\n' või '\r'. |
| . | Vastab mis tahes üksikule märgile, välja arvatud "\n".Mis tahes märgi, sealhulgas '\n', sobitamiseks kasutage mustrit nagu '[.\n]'. |
| [...] | tegelaste kogu.Vastab mis tahes sisalduvatele tähemärkidele.Näiteks "[abc]" vastaks "plai"a" n-s". |
| [^…] | Negatiivne märgistik.Vastab mis tahes märki, mida ei sisalda.Näiteks "[^abc]" vastaks "p"-le "tavalises". |
| p1|p2|p3 | Sobib p1 või p2 või p3.Näiteks "z|toit" vastaks kas "z" või "toit". '(z|f)ood' vastab sõnale "zood" või "toit". |
| * | Vastab eelnevale alamavaldisele null või enam korda.Näiteks zo* sobiks nii "z" kui ka "zoo". * on samaväärne väärtusega {0,}. |
| + | Vastab eelmisele alamavaldisele üks või mitu korda.Näiteks "zo+" vastaks sõnadele "zo" ja "zoo", kuid mitte "z". + on võrdne väärtusega {1,}. |
| {mitte} | n on mittenegatiivne täisarv.Vastab täpselt n korda.Näiteks 'o{2}' ei vastaks 'o'-le "Bobis", kuid vastaks mõlemale o-le sõnastuses "toit". |
| {n,m} | Nii m kui ka n on mittenegatiivsed täisarvud, kus n <= m.Vastab vähemalt n korda ja maksimaalselt m korda. |
Esimese astme
Pärast ülaltoodud regulaarnõuete mõistmist saame kirjutada regulaaravaldistega SQL-lauseid vastavalt meie enda nõuetele.Allpool loetleme mõned väikesed näited (tabeli nimi: person_tbl ), et meie arusaamist süvendada:
Otsige nimeväljalt kõik andmed, mis algavad tähega "st":
mysql> SELECT name FROM person_tbl WHERE name REGEXP '^st';
Otsige nimeväljalt üles kõik andmed, mis lõpevad sõnaga "ok".
mysql> SELECT name FROM person_tbl WHERE name REGEXP 'ok$';
Otsige üles kõik andmed, mis sisaldavad nimeväljalt stringi "mar":
mysql> SELECT name FROM person_tbl WHERE name REGEXP 'mar';
Otsige nimeväljalt üles kõik andmed, mis algavad täishäälikuga või lõpevad stringiga "ok":
mysql> SELECT name FROM person_tbl WHERE name REGEXP '^[aeiou]|ok$';
Hope Chen Weiliangi ajaveeb ( https://www.chenweiliang.com/ ) jagatud "Kuidas sobitada MySQL andmebaasi regulaaravaldisi? MySQL regexp like kasutamine" aitab teid.
Tere tulemast selle artikli linki jagama:https://www.chenweiliang.com/cwl-492.html
