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
Avataksesi lisää piilotettuja temppuja🔑, tervetuloa liittymään Telegram-kanavallemme!
Jaa ja tykkää jos pidät! Jakamasi ja tykkäyksesi ovat jatkuva motivaatiomme!