Article Directory
MySQL маалымат базасыКадимки сөз айкаштары кандайча дал келет?MySQL regexp сыяктуу колдонуу
MySQL кадимки туюнтмасы
Мурунку бөлүмдө биз MySQL өтүшү мүмкүн экенин билдик ЖАКШЫ…% бүдөмүк дал келүүнү аткаруу.
MySQL ошондой эле башка регулярдуу туюнтма дал келүүсүн колдойт.
Эгер сиз PHP же Perl тилдерин билсеңиз, муну жасоо абдан оңой, анткени MySQLдин кадимки туюнтмаларынын дал келиши бул скрипттерге окшош.
Төмөнкү таблицадагы кадимки үлгүлөрдү REGEXP операторуна колдонсо болот.
Mode | сүрөттөө |
---|---|
^ | Киргизилген саптын башына дал келет. Эгерде RegExp объектинин Multiline касиети коюлса, ^ ошондой эле '\n' же '\r' кийинки позицияга дал келет. |
$ | Киргизилген саптын аягына дал келет. RegExp объектинин Multiline касиети коюлган болсо, $ да '\n' же '\r' алдындагы позицияга дал келет. |
. | "\n" дегенден башка бир символго дал келет. Каалаган белгиге, анын ичинде '\n'ге дал келүү үчүн, '[.\n]' үлгүсүн колдонуңуз. |
[...] | Каармандардын жыйнагы. камтылган белгилердин бирине дал келет. Мисалы, '[abc]' "pl." менен дал келетai'a' in n". |
[^…] | Терс каармандардын жыйнагы. Кошулбаган кандайдыр бир белгиге дал келет. Мисалы, "[^abc]" "жөнөкөй" ичиндеги "p" менен дал келет. |
p1|p2|p3 | p1 же p2 же p3 дал келет. Мисалы, "z|food" "z" же "тамак" менен дал келет. '(z|f)ood' "zood" же "тамак" дал келет. |
* | Мурунку субэкспрессияга нөл же андан көп жолу дал келет. Мисалы, zo* «z» жана «зоопарк» менен дал келет. * {0,} эквиваленти. |
+ | Мурунку субэкспрессияга бир же бир нече жолу дал келет. Мисалы, "zo+" "zo" менен "зоопаркка" дал келет, бирок "z" эмес. + {1,} га барабар. |
{n} | n терс эмес бүтүн сан. Матч n жолу аныкталды. Мисалы, "o{2}" "Бобдогу" "o" менен дал келе албайт, бирок "тамак-аштагы" эки o менен дал келиши мүмкүн. |
{n,m} | m жана n экөө тең терс эмес бүтүн сандар, мында n <= m. Жок дегенде n жолу жана эң көп m жолу дал келиңиз. |
Instance
Жогорудагы үзгүлтүксүз талаптарды түшүнгөндөн кийин, биз өзүбүздүн муктаждыктарыбызга ылайык 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 сыяктуу колдонуу", ал сизге пайдалуу болот.
Бул макаланын шилтемесин бөлүшүүгө кош келиңиз:https://www.chenweiliang.com/cwl-492.html
Акыркы жаңылыктарды алуу үчүн Чен Вейляндын блогунун Telegram каналына кош келиңиз!
📚 Бул колдонмо чоң баалуулуктарды камтыйт, 🌟Бул сейрек кездешүүчү мүмкүнчүлүк, аны өткөрүп жибербеңиз! ⏰⌛💨
Бөлүшүп, жакса лайк!
Сиздин бөлүшүүңүз жана лайктарыңыз биздин үзгүлтүксүз мотивациябыз!