ການສະແດງອອກປົກກະຕິຂອງຖານຂໍ້ມູນ MySQL ກົງກັນແນວໃດ? MySQL regexp ຄືການນໍາໃຊ້

ຖານຂໍ້ມູນ MySQLການສະແດງອອກເປັນປົກກະຕິກົງກັນແນວໃດ?MySQL regexp ຄືການນໍາໃຊ້

MySQL ການສະແດງອອກປົກກະຕິ

ໃນບົດທີ່ຜ່ານມາພວກເຮົາໄດ້ຮຽນຮູ້ວ່າ MySQL ສາມາດຜ່ານ ມັກ…% ເພື່ອປະຕິບັດການຈັບຄູ່ fuzzy.

MySQL ຍັງຮອງຮັບການຈັບຄູ່ການສະແດງອອກປົກກະຕິອື່ນໆ. ໂຕປະຕິບັດການ REGEXP ຖືກນໍາໃຊ້ໃນ MySQL ສໍາລັບການຈັບຄູ່ການສະແດງອອກເປັນປົກກະຕິ.

ຖ້າທ່ານຮູ້ຈັກ PHP ຫຼື Perl, ມັນງ່າຍຫຼາຍທີ່ຈະເຮັດເພາະວ່າການຈັບຄູ່ການສະແດງອອກປົກກະຕິຂອງ MySQL ແມ່ນຄ້າຍຄືກັນກັບສະຄິບເຫຼົ່ານີ້.

ຮູບແບບປົກກະຕິໃນຕາຕະລາງຕໍ່ໄປນີ້ສາມາດໃຊ້ກັບຕົວປະຕິບັດການ REGEXP.

ຮູບແບບຄຳ ອະທິບາຍ
^ກົງກັບຈຸດເລີ່ມຕົ້ນຂອງສະຕຣິງປ້ອນຂໍ້ມູນ. ຖ້າຄຸນສົມບັດ Multiline ຂອງວັດຖຸ RegExp ຖືກຕັ້ງ, ^ ຍັງກົງກັບຕໍາແຫນ່ງຫຼັງຈາກ '\n' ຫຼື '\r'.
$ກົງກັບທ້າຍຂອງສະຕຣິງປ້ອນຂໍ້ມູນ. ຖ້າຄຸນສົມບັດ Multiline ຂອງວັດຖຸ RegExp ຖືກຕັ້ງ, $ ຍັງກົງກັບຕໍາແຫນ່ງກ່ອນ '\n' ຫຼື '\r'.
.ກົງກັບຕົວອັກສອນດຽວຍົກເວັ້ນ "\n". ເພື່ອຈັບຄູ່ຕົວລະຄອນໃດໜຶ່ງລວມທັງ '\n', ໃຫ້ໃຊ້ຮູບແບບເຊັ່ນ '[.\n]'.
[... ]ການເກັບກໍາຕົວອັກສອນ. ກົງກັບຕົວລະຄອນໃດນຶ່ງທີ່ມີ. ຕົວຢ່າງ, '[abc]' ຈະກົງກັບ "plai'a' ໃນ n".
[^…]ຄໍເລັກຊັນຂອງລັກສະນະທາງລົບ. ກົງກັບຕົວອັກສອນໃດນຶ່ງທີ່ບໍ່ໄດ້ລວມເຂົ້າ. ຕົວຢ່າງ, '[^abc]' ກົງກັບ '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' ໃນ "Bob", ແຕ່ມັນສາມາດກົງກັບສອງ o ໃນ "ອາຫານ".
{n,m}m ແລະ n ແມ່ນທັງສອງຕົວເລກທີ່ບໍ່ໄດ້ລົບ, ບ່ອນທີ່ n <= m. ຈັບຄູ່ກັນຢ່າງໜ້ອຍ n ຄັ້ງ ແລະເວລາຫຼາຍທີ່ສຸດ.

ຕົວຢ່າງ

ຫຼັງຈາກເຂົ້າໃຈຂໍ້ກໍານົດປົກກະຕິຂ້າງເທິງ, ພວກເຮົາສາມາດຂຽນຄໍາຖະແຫຼງທີ່ 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$';

ຫວັງ Chen Weiliang Blog ( https://www.chenweiliang.com/ ) ແບ່ງປັນ "ວິທີການຈັບຄູ່ການສະແດງອອກປົກກະຕິໃນຖານຂໍ້ມູນ MySQL?" MySQL regexp ເຊັ່ນການນໍາໃຊ້", ມັນຈະເປັນປະໂຫຍດສໍາລັບທ່ານ.

ຍິນດີຕ້ອນຮັບແບ່ງປັນການເຊື່ອມຕໍ່ຂອງບົດຄວາມນີ້:https://www.chenweiliang.com/cwl-492.html

ຍິນດີຕ້ອນຮັບສູ່ຊ່ອງ Telegram ຂອງບລັອກຂອງ Chen Weiliang ເພື່ອຮັບອັບເດດຫຼ້າສຸດ!

🔔 ເປັນຜູ້ທຳອິດທີ່ໄດ້ຮັບ "ຄູ່ມືການໃຊ້ເຄື່ອງມືການຕະຫຼາດເນື້ອຫາ ChatGPT AI" ທີ່ມີຄຸນຄ່າໃນລາຍການທາງເທິງ! 🌟
📚ຄູ່ມືນີ້ມີຄຸນຄ່າອັນມະຫາສານ, 🌟ນີ້ເປັນໂອກາດທີ່ຫາຍາກ, ຢ່າພາດມັນ! ⏰⌛💨
Share and like ຖ້າມັກ!
ການ​ແບ່ງ​ປັນ​ແລະ​ການ​ຖືກ​ໃຈ​ຂອງ​ທ່ານ​ແມ່ນ​ການ​ຊຸກ​ຍູ້​ຢ່າງ​ຕໍ່​ເນື່ອງ​ຂອງ​ພວກ​ເຮົາ​!

 

评论评论

ທີ່ຢູ່ອີເມວຂອງທ່ານຈະບໍ່ຖືກເຜີຍແຜ່. ທົ່ງນາທີ່ກໍານົດໄວ້ແມ່ນຖືກນໍາໃຊ້ * ປ້າຍ ກຳ ກັບ

ເລື່ອນໄປເທິງສຸດ