Како се совпаѓаат регуларните изрази на базата на податоци на MySQL? MySQL regexp како употреба

Директориум за статии

Како да се изврши совпаѓање на регуларни изрази во MySQL база на податоци ? Како да се користи MySQL regexp?

MySQL регуларни изрази

Во претходните поглавја, научивме дека MySQL може да користи LIKE …% за нејасно совпаѓање.

MySQL исто така поддржува совпаѓање на други правилни изрази.Операторот REGEXP се користи во MySQL за совпаѓање на регуларни изрази.

Ако знаете PHP или Perl, тоа е прилично едноставно, бидејќи совпаѓањето на редовните изрази на MySQL е слично на оние на овие скрипти.

Редовните обрасци во следната табела може да се применат на операторот REGEXP.

Режим描述
^Се совпаѓа со почетокот на влезната низа.^ исто така се совпаѓа со позицијата по '\n' или '\r' ако е поставено својството Multiline на објектот RegExp.
$Се совпаѓа со крајот на влезната низа.Ако е поставено својството Multiline на објектот RegExp, $ исто така се совпаѓа со позицијата пред '\n' или '\r'.
.Се совпаѓа со кој било знак освен „\n“.За да одговарате на кој било знак, вклучително и „\n“, користете шема како „[.\n]“.
[...]колекција на ликови.Се совпаѓа со кој било од содржаните знаци.На пример, „[abc]“ би се совпаднала со „plai„а“ во n“.
[^…]Збир на негативни знаци.Се совпаѓа со кој било знак што не е содржан.На пример, „[^abc]“ би се совпаднала со „p“ во „обично“.
p1|p2|p3Се совпаѓа со p1 или p2 или p3.На пример, „z|храна“ би одговарала или со „z“ или „храна“. „(z|f)ood“ се совпаѓа со „zood“ или „food“.
*Се совпаѓа со претходниот потизраз нула или повеќе пати.На пример, zo* ќе одговара на „z“ како и на „зоолошката градина“. * е еквивалентно на {0,}.
+Се совпаѓа со претходниот потизраз еден или повеќе пати.На пример, „зо+“ би одговарал на „зо“ и „зоо“, но не и „з“. + е еквивалентно на {1,}.
{n}n е ненегативен цел број.Се совпаѓа точно n пати.На пример, „o{2}“ не би се совпаѓало со „o“ во „Bob“, но би се совпаѓало со двете o во „храна“.
{n, m}И 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$';

Се надеваме дека статијата „Како да се комбинира користењето на регуларни изрази во MySQL база на податоци? Употреба на MySQL regexp како“ споделена на блогот на Чен Вејлијанг ( https://www.chenweiliang.com/ ) ќе ви биде корисна.

Слободно споделете го линкот до овој напис: https://www.chenweiliang.com/cwl-492.html

За да отклучите повеќе скриени трикови🔑, добредојдени сте да се придружите на нашиот Телеграм канал!

Споделете и лајкнете ако ви се допаѓа! Вашите споделувања и лајкови се наша постојана мотивација!

 

评论

您的邮箱地址不会被公开。必填项已用*标注

Дојдете до врв