Saraka ya Nakala
Hifadhidata ya MySQLUsemi wa kawaida unalinganaje?MySQL regexp kama matumizi
Maneno ya kawaida ya MySQL
Katika sura zilizopita tumejifunza kuwa MySQL inaweza kuwa KAMA...% kwa kulinganisha fuzzy.
MySQL pia inaauni ulinganifu wa maneno mengine ya kawaida. Opereta ya REGEXP inatumika katika MySQL kwa ulinganishi wa kawaida wa usemi.
Ikiwa unajua PHP au Perl, ni moja kwa moja, kwani ulinganisho wa kawaida wa usemi wa MySQL ni sawa na ule wa hati hizi.
Mifumo ya kawaida katika jedwali ifuatayo inaweza kutumika kwa opereta wa REGEXP.
Njia | 描述 |
---|---|
^ | Inalingana na mwanzo wa mfuatano wa ingizo.^ pia inalingana na nafasi baada ya '\n' au '\r' ikiwa sifa ya Multiline ya kipengee cha RegExp imewekwa. |
$ | Inalingana na mwisho wa mfuatano wa ingizo.Ikiwa kipengele cha Multiline cha kipengee cha RegExp kimewekwa, $ pia inalingana na nafasi ya kabla ya '\n' au '\r'. |
. | Inalingana na herufi yoyote isipokuwa "\n".Ili kulinganisha herufi yoyote ikijumuisha '\n', tumia mchoro kama vile '[.\n]'. |
[...] | mkusanyiko wa wahusika.Inalingana na herufi yoyote kati ya zilizomo.Kwa mfano, '[abc]' ingelingana na "plai'a' katika n". |
[^…] | Seti ya herufi hasi.Inalingana na herufi yoyote isiyojumuishwa.Kwa mfano, '[^abc]' ingelingana na 'p' katika "wazi". |
p1|p2|p3 | Inalingana na p1 au p2 au p3.Kwa mfano, 'z|chakula' kitalingana na "z" au "chakula". '(z|f)ood' inalingana na "zood" au "chakula". |
* | Inalingana na usemi mdogo uliotangulia sifuri au mara zaidi.Kwa mfano, zo* ingelingana na "z" na "zoo". * ni sawa na {0,}. |
+ | Inalingana na usemi mdogo uliotangulia mara moja au zaidi.Kwa mfano, 'zo+' ingelingana na "zo" na "zoo", lakini si "z". + ni sawa na {1,}. |
{n} | n ni nambari kamili isiyo hasi.Inalingana mara n haswa.Kwa mfano, 'o{2}' hailingani na 'o' katika "Bob", lakini ingelingana na o zote mbili katika "chakula". |
{n,m} | M na n zote mbili ni nambari kamili zisizo hasi, ambapo n <= m.Inalingana angalau mara n na mara nyingi zaidi ya m. |
Mfano
Baada ya kuelewa mahitaji ya hapo juu ya kawaida, tunaweza kuandika taarifa za SQL kwa maneno ya kawaida kulingana na mahitaji yetu wenyewe.Hapo chini tutaorodhesha mifano michache ndogo (jina la jedwali: person_tbl ) ili kuongeza uelewa wetu:
Pata data yote inayoanza na 'st' kwenye uwanja wa jina:
mysql> SELECT name FROM person_tbl WHERE name REGEXP '^st';
Pata data yote inayoisha na 'sawa' kwenye uwanja wa jina:
mysql> SELECT name FROM person_tbl WHERE name REGEXP 'ok$';
Pata data yote iliyo na kamba ya 'mar' kwenye uwanja wa jina:
mysql> SELECT name FROM person_tbl WHERE name REGEXP 'mar';
Tafuta data yote katika sehemu ya jina inayoanza na herufi ya vokali au kuishia na mfuatano 'sawa':
mysql> SELECT name FROM person_tbl WHERE name REGEXP '^[aeiou]|ok$';
Hope Chen Weiliang Blog ( https://www.chenweiliang.com/ ) ilishirikiwa "Jinsi ya kulinganisha maneno ya kawaida ya hifadhidata ya MySQL? MySQL regexp kama utumiaji" itakusaidia.
Karibu kushiriki kiungo cha makala hii:https://www.chenweiliang.com/cwl-492.html
Karibu kwenye chaneli ya Telegramu ya blogu ya Chen Weiliang ili kupata masasisho mapya zaidi!
📚 Mwongozo huu una thamani kubwa, 🌟Hii ni fursa adimu, usiikose! ⏰⌛💨
Share na like ukipenda!
Kushiriki kwako na kupenda kwako ndio motisha yetu inayoendelea!