Maneno ya kawaida ya hifadhidata ya MySQL yanalinganaje? MySQL regexp kama utumiaji

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|p3Inalingana 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!

🔔 Kuwa wa kwanza kupata "Mwongozo wa Matumizi ya Zana ya AI ya Uuzaji wa Maudhui ya ChatGPT" katika saraka ya juu ya kituo! 🌟
📚 Mwongozo huu una thamani kubwa, 🌟Hii ni fursa adimu, usiikose! ⏰⌛💨
Share na like ukipenda!
Kushiriki kwako na kupenda kwako ndio motisha yetu inayoendelea!

 

发表 评论

Anwani yako ya barua pepe haitachapishwa. 必填 项 已 用 * 标注

tembeza juu