MySQL ma'lumotlar bazasi muntazam ifodalari qanday mos keladi? Foydalanish kabi MySQL regexp

MySQL ma'lumotlar bazasida muntazam ifodalarni moslashtirishni qanday bajarish mumkin ? MySQL regexp kabi qanday ishlatiladi?

MySQL muntazam ifodalari

Oldingi boblarda biz MySQL loyqa moslashtirish uchun LIKE …% dan foydalanishi mumkinligini bilib oldik.

MySQL boshqa oddiy iboralarni moslashtirishni ham qo'llab-quvvatlaydi.REGEXP operatori MySQLda muntazam ifodalarni moslashtirish uchun ishlatiladi.

Agar siz PHP yoki Perl-ni bilsangiz, bu juda oddiy, chunki MySQL-ning oddiy ifoda moslashuvi ushbu skriptlarnikiga o'xshaydi.

Quyidagi jadvaldagi oddiy naqshlar REGEXP operatoriga qo'llanilishi mumkin.

Rejimtavsif
^Kirish satrining boshiga mos keladi.^ RegExp ob'ektining Multiline xususiyati o'rnatilgan bo'lsa, '\n' yoki '\r' dan keyingi pozitsiyaga ham mos keladi.
$Kirish qatorining oxiriga mos keladi.RegExp ob'ektining Multiline xususiyati o'rnatilgan bo'lsa, $ "\n" yoki "\r" dan oldingi pozitsiyaga ham mos keladi.
.“\n”dan tashqari har qanday bitta belgiga mos keladi.“\n” kabi har qanday belgiga mos kelish uchun “[.\n]” kabi naqshdan foydalaning.
[...]belgilar to'plami.Tarkibdagi belgilarning har qandayiga mos keladi.Masalan, "[abc]" "pl" ga mos keladiain ichida "a".
[^…]Salbiy belgilar to'plami.Tarkibida boʻlmagan har qanday belgiga mos keladi.Masalan, “[^abc]” “p” ga “p” ga mos keladi.
p1|p2|p3p1 yoki p2 yoki p3 bilan moslang.Masalan, "z|food" "z" yoki "ovqat" ga mos keladi. "(z|f)ood" "zood" yoki "ovqat" ga mos keladi.
*Oldingi pastki ifodaga nol yoki undan ortiq marta mos keladi.Masalan, zo* "z" va "hayvonot bog'i"ga mos keladi. * {0,} ga ekvivalent.
+Oldingi pastki ifodaga bir yoki bir necha marta mos keladi.Masalan, "zo+" "zo" va "hayvonot bog'i" ga mos keladi, lekin "z" emas. + {1,} ga ekvivalent.
{n}n - manfiy bo'lmagan butun son.To'liq n marta mos keladi.Masalan, "o{2}" "Bob" dagi "o" ga mos kelmaydi, lekin "ovqat" dagi ikkala o ga mos keladi.
{n,m}m ham, n ham manfiy bo'lmagan butun sonlar, bu erda n <= m.Kamida n marta va ko'pi bilan m marta mos keladi.

Misol

Yuqoridagi muntazam talablarni tushunganimizdan so'ng, biz o'z talablarimizga muvofiq SQL iboralarini muntazam iboralar bilan yozishimiz mumkin.Quyida tushunchamizni chuqurlashtirish uchun bir nechta kichik misollarni keltiramiz (jadval nomi: person_tbl ):

Nom maydonida "st" bilan boshlangan barcha ma'lumotlarni toping:

mysql> SELECT name FROM person_tbl WHERE name REGEXP '^st';

Nom maydonida "ok" bilan tugaydigan barcha ma'lumotlarni toping:

mysql> SELECT name FROM person_tbl WHERE name REGEXP 'ok$';

Nom maydonida "mar" qatorini o'z ichiga olgan barcha ma'lumotlarni toping:

mysql> SELECT name FROM person_tbl WHERE name REGEXP 'mar';

Nom maydonida unli harf bilan boshlanadigan yoki "ok" qatori bilan tugaydigan barcha ma'lumotlarni toping:

mysql> SELECT name FROM person_tbl WHERE name REGEXP '^[aeiou]|ok$';

发表 评论

língíngíngíngíngíngíngíngíngíngíngíngíngín *​​

Top o'ting