Artikkelihakemisto
MySQL-tietokantaMiten säännöllinen lauseke täsmää?MySQL säännöllisen lausekkeen kaltainen käyttö
MySQL:n säännölliset lausekkeet
Aiemmissa luvuissa olemme oppineet, että MySQL voi olla KUTEN...% sumeaa vastaavuutta varten.
MySQL tukee myös muiden säännöllisten lausekkeiden täsmäämistä.MySQL:ssä käytetään REGEXP-operaattoria säännöllisten lausekkeiden täsmäykseen.
Jos osaat PHP:n tai Perlin, se on melko yksinkertaista, koska MySQL:n säännöllisten lausekkeiden vastaavuus on samanlainen kuin näiden skriptien.
Seuraavan taulukon säännöllisiä kuvioita voidaan soveltaa REGEXP-operaattoriin.
tila | kuvaus |
---|---|
^ | Vastaa syöttömerkkijonon alkua.^ vastaa myös sijaintia '\n' tai '\r':n jälkeen, jos RegExp-objektin Multiline-ominaisuus on asetettu. |
$ | Vastaa syöttömerkkijonon loppua.Jos RegExp-objektin Multiline-ominaisuus on asetettu, $ vastaa myös sijaintia ennen '\n' tai '\r'. |
. | Vastaa mitä tahansa yksittäistä merkkiä paitsi "\n".Käytä kaavaa, kuten '[.\n]', jotta se vastaa mitä tahansa merkkiä, mukaan lukien '\n'. |
[...] | kokoelma hahmoja.Vastaa mitä tahansa sisällytetyistä merkeistä.Esimerkiksi "[abc]" vastaisi "plai"a" n:ssä". |
[^…] | Negatiivinen merkistö.Vastaa mitä tahansa merkkiä, jota ei ole mukana.Esimerkiksi '[^abc]' vastaisi p:tä sanalla "plain". |
p1|p2|p3 | Vastaa p1 tai p2 tai p3.Esimerkiksi "z|ruoka" vastaa joko "z" tai "ruoka". '(z|f)ood' vastaa sanaa "eläintarha" tai "ruoka". |
* | Vastaa edellistä osalauseketta nolla tai useammin.Esimerkiksi zo* vastaisi sanaa "z" sekä "zoo". * vastaa arvoa {0,}. |
+ | Vastaa edellistä osalauseketta yhden tai useamman kerran.Esimerkiksi 'zo+' vastaisi sanaa "zo" ja "zoo", mutta ei "z". + vastaa arvoa {1,}. |
{n} | n on ei-negatiivinen kokonaisluku.Vastaa täsmälleen n kertaa.Esimerkiksi 'o{2}' ei vastaisi 'o':a sanassa "Bob", mutta vastaisi molempia o:ta sanassa "ruoka". |
{n,m} | Sekä m että n ovat ei-negatiivisia kokonaislukuja, joissa n <= m.Vastaa vähintään n kertaa ja enintään m kertaa. |
Ilmentymä
Ymmärrettyään yllä olevat säännölliset vaatimukset, voimme kirjoittaa SQL-lauseita säännöllisillä lausekkeilla omien vaatimusten mukaisesti.Alla luetellaan muutamia pieniä esimerkkejä (taulukon nimi: person_tbl ) syventääksemme ymmärrystämme:
Etsi kaikki tiedot, jotka alkavat st:llä nimikentästä:
mysql> SELECT name FROM person_tbl WHERE name REGEXP '^st';
Etsi kaikki tiedot, jotka päättyvät "ok" nimikenttään:
mysql> SELECT name FROM person_tbl WHERE name REGEXP 'ok$';
Etsi kaikki tiedot, jotka sisältävät "mar"-merkkijonon nimikentässä:
mysql> SELECT name FROM person_tbl WHERE name REGEXP 'mar';
Etsi kaikki tiedot nimikentästä, joka alkaa vokaalilla tai päättyy merkkijonoon "ok":
mysql> SELECT name FROM person_tbl WHERE name REGEXP '^[aeiou]|ok$';
Hope Chen Weiliang -blogi ( https://www.chenweiliang.com/ ) jakoi "Kuinka täsmäyttää MySQL-tietokannan säännölliset lausekkeet? MySQL regexp like käyttö" auttaa sinua.
Tervetuloa jakamaan tämän artikkelin linkki:https://www.chenweiliang.com/cwl-492.html
Tervetuloa Chen Weiliangin blogin Telegram-kanavalle saadaksesi viimeisimmät päivitykset!
📚 Tämä opas sisältää valtavasti arvoa, 🌟Tämä on harvinainen tilaisuus, älä missaa sitä! ⏰⌛💨
Jaa ja tykkää jos tykkäät!
Jakamasi ja tykkäyksesi ovat jatkuva motivaatiomme!