Нийтлэлийн лавлах
MySQL мэдээллийн санТогтмол илэрхийлэл хэрхэн таарч байна вэ?MySQL regexp шиг хэрэглээ
MySQL тогтмол илэрхийллүүд
Өмнөх бүлгүүдээс бид MySQL байж болохыг олж мэдсэн LIKE...% бүдэг бадаг тааруулахын тулд.
MySQL нь бусад ердийн илэрхийлэлүүдийг тохируулахыг дэмждэг.REGEXP операторыг MySQL-д ердийн илэрхийлэл тааруулахад ашигладаг.
Хэрэв та PHP эсвэл Perl мэддэг бол MySQL-ийн тогтмол илэрхийллийн тохироо нь эдгээр скриптүүдийнхтэй төстэй тул энэ нь маш энгийн зүйл юм.
Дараах хүснэгтийн ердийн хэв маягийг REGEXP операторт хэрэглэж болно.
Горим | тодорхойлолт |
---|---|
^ | Оролтын мөрийн эхэнд таарна.^ нь RegExp объектын Multiline шинж чанарыг тохируулсан бол '\n' эсвэл '\r'-ийн дараах байрлалтай тохирно. |
$ | Оролтын мөрийн төгсгөлд таарч байна.Хэрэв RegExp объектын Multiline шинж чанарыг тохируулсан бол $ нь '\n' эсвэл '\r'-ийн өмнөх байрлалтай тохирно. |
. | "\n"-ээс бусад ямар ч тэмдэгт таарч байна.'\n' зэрэг дурын тэмдэгттэй тааруулахын тулд '[.\n]' гэх мэт хээ ашиглана уу. |
[...] | дүрүүдийн цуглуулга.Оруулсан тэмдэгтүүдийн аль нэгэнд нь таарна.Жишээлбэл, '[abc]' нь "plain-д 'a'. |
[^…] | Сөрөг тэмдэгтийн багц.Ямар ч тэмдэгт агуулаагүй таарч байна.Жишээ нь, '[^abc]' нь "plain"-ын 'p'-тэй тохирно. |
p1|p2|p3 | p1 эсвэл p2 эсвэл p3 таарч байна.Жишээлбэл, 'z|food' нь "z" эсвэл "хоол"-ын аль нэгтэй тохирно. '(z|f)ood' нь "zood" эсвэл "хоол"-той таарч байна. |
* | Өмнөх дэд илэрхийлэлтэй тэг буюу түүнээс олон удаа таарч байна.Жишээ нь, zo* нь "z" болон "zoo"-тэй таарах болно. * нь {0,}-тай тэнцүү. |
+ | Өмнөх дэд илэрхийлэлтэй нэг буюу хэд хэдэн удаа таарч байна.Жишээлбэл, 'zo+' нь "zo" болон "zoo"-тэй таарч тохирох боловч "z"-тэй тохирохгүй. + нь {1,}-тэй тэнцүү. |
{n} | n нь сөрөг бус бүхэл тоо юм.Яг n удаа таарч байна.Жишээ нь, 'o{2}' нь "Боб"-ын 'o'-тэй таарахгүй, харин "хоол"-ын хоёр o-той тохирно. |
{н,м} | m ба n хоёулаа сөрөг бус бүхэл тоо бөгөөд энд n <= m байна.Хамгийн багадаа n удаа, хамгийн ихдээ m удаа таарна. |
жишээ
Дээрх ердийн шаардлагуудыг ойлгосны дараа бид өөрсдийн шаардлагын дагуу тогтмол илэрхийлэл бүхий SQL хэллэгүүдийг бичиж болно.Доор бид ойлголтоо гүнзгийрүүлэхийн тулд цөөн хэдэн жижиг жишээг (хүснэгтийн нэр: person_tbl) жагсаах болно:
Нэрийн талбараас 'st'-ээр эхэлсэн бүх өгөгдлийг ол:
mysql> SELECT name FROM person_tbl WHERE name REGEXP '^st';
Нэрийн талбараас "ok" гэж төгссөн бүх өгөгдлийг ол:
mysql> SELECT name FROM person_tbl WHERE name REGEXP 'ok$';
Нэрийн талбараас 'mar' тэмдэгт мөр агуулсан бүх өгөгдлийг ол:
mysql> SELECT name FROM person_tbl WHERE name REGEXP 'mar';
Нэрийн талбараас эгшиг үсгээр эхэлсэн эсвэл 'ok' тэмдэгтээр төгссөн бүх өгөгдлийг ол:
mysql> SELECT name FROM person_tbl WHERE name REGEXP '^[aeiou]|ok$';
Hope Chen Weiliang блог ( https://www.chenweiliang.com/ ) shared "MySQL өгөгдлийн сангийн ердийн илэрхийллийг хэрхэн тохируулах вэ? MySQL regexp like use" нь танд туслах болно.
Энэ нийтлэлийн холбоосыг хуваалцахад тавтай морилно уу:https://www.chenweiliang.com/cwl-492.html
Чен Вэйляны блогын Telegram сувагт тавтай морил, хамгийн сүүлийн үеийн мэдээг аваарай!
📚 Энэхүү гарын авлага нь асар их үнэ цэнийг агуулсан, 🌟Энэ бол ховор боломж, бүү алдаарай! ⏰⌛💨
Хэрэв танд таалагдвал лайк дарж, хуваалцаарай!
Таны хуваалцах, дуртай зүйл бол бидний байнгын урам зориг юм!