Каталог артыкулаў
База дадзеных MySQLЯк супадае рэгулярны выраз?MySQL выкарыстанне рэгулярных выразаў
Рэгулярныя выразы MySQL
У папярэдніх раздзелах мы даведаліся, што MySQL можа прайсці ПАДАБАЕЦЦА...% для недакладнага супастаўлення.
MySQL таксама падтрымлівае супастаўленне іншых рэгулярных выразаў. Аператар REGEXP выкарыстоўваецца ў MySQL для супастаўлення рэгулярных выразаў.
Калі вы ведаеце PHP або Perl, гэта даволі проста, бо супастаўленне рэгулярных выразаў MySQL падобна да супастаўлення гэтых скрыптоў.
Звычайныя шаблоны ў наступнай табліцы можна прымяніць да аператара REGEXP.
рэжым | апісанне |
---|---|
^ | Супадае з пачаткам радка ўводу.^ таксама адпавядае пазіцыі пасля '\n' або '\r', калі ўстаноўлена ўласцівасць Multiline аб'екта RegExp. |
$ | Супадае з канцом радка ўводу.Калі ўстаноўлена ўласцівасць Multiline аб'екта RegExp, $ таксама адпавядае пазіцыі перад '\n' або '\r'. |
. | Супадае з любым сімвалам, акрамя "\n".Каб адпавядаць любому сімвалу, уключаючы '\n', выкарыстоўвайце шаблон накшталт '[.\n]'. |
[...] | калекцыя знакаў.Супадае з любым з уключаных сімвалаў.Напрыклад, «[abc]» будзе адпавядаць «plai«а» ў н». |
[^…] | Адмоўны набор сімвалаў.Супадае з любым сімвалам, які не змяшчаецца.Напрыклад, '[^abc]' будзе адпавядаць 'p' у «простым». |
p1|p2|p3 | Супадае з p1, p2 або p3.Напрыклад, "z|ежа" будзе адпавядаць альбо "z", альбо "ежа". «(z|f)ood» адпавядае «zood» або «food». |
* | Супадае з папярэднім падвыразам нуль або больш разоў.Напрыклад, zo* будзе адпавядаць "z", а таксама "zoo". * эквівалентна {0,}. |
+ | Супадае з папярэднім падвыразам адзін ці некалькі разоў.Напрыклад, "zo+" будзе адпавядаць "zo" і "zoo", але не "z". + эквівалентна {1,}. |
{п} | n - цэлы неадмоўны лік.Супадае роўна n разоў.Напрыклад, "о{2}" не будзе адпавядаць "о" ў "Боб", але будзе адпавядаць абодвум о ў "ежа". |
{n,m} | І m, і n з'яўляюцца цэлымі неадмоўнымі лікамі, дзе n <= m.Супадае не менш за n разоў і не больш за m разоў. |
Інстанцыя
Пасля разумення вышэйзгаданых рэгулярных патрабаванняў мы можам пісаць аператары SQL з рэгулярнымі выразамі ў адпаведнасці з нашымі патрабаваннямі.Ніжэй мы пералічым некалькі невялікіх прыкладаў (імя табліцы: person_tbl ), каб паглыбіць наша разуменне:
Знайдзіце ўсе дадзеныя, якія пачынаюцца з 'st' у полі імя:
mysql> SELECT name FROM person_tbl WHERE name REGEXP '^st';
Знайдзіце ўсе дадзеныя, якія заканчваюцца на «ок» у полі імя:
mysql> SELECT name FROM person_tbl WHERE name REGEXP 'ok$';
Знайдзіце ўсе дадзеныя, якія змяшчаюць радок «mar» у полі імя:
mysql> SELECT name FROM person_tbl WHERE name REGEXP 'mar';
Знайдзіце ў полі імя ўсе дадзеныя, якія пачынаюцца з галоснай літары або заканчваюцца радком «ок»:
mysql> SELECT name FROM person_tbl WHERE name REGEXP '^[aeiou]|ok$';
Блог Hope Chen Weiliang ( https://www.chenweiliang.com/ ) падзяліўся "Як супаставіць рэгулярныя выразы базы дадзеных MySQL? MySQL regexp like usage" дапаможа вам.
Запрашаем падзяліцца спасылкай на гэты артыкул:https://www.chenweiliang.com/cwl-492.html
Сардэчна запрашаем на канал Telegram у блогу Чэнь Вэйляна, каб атрымліваць апошнія абнаўленні!
📚 Гэты дапаможнік мае вялікую каштоўнасць, 🌟Гэта рэдкая магчымасць, не прапусціце яе! ⏰⌛💨
Падзяліцеся і лайкайце, калі хочаце!
Ваш абмен і лайкі - наша пастаянная матывацыя!