கட்டுரை அடைவு
MySQL தரவுத்தளத்தில் ரெகுலர் எக்ஸ்பிரஷன் பொருத்தத்தை (regular expression matching) எவ்வாறு செய்வது ? MySQL ரெகுலர் எக்ஸ்பிரஷனை (regexp) எவ்வாறு பயன்படுத்துவது?
MySQL வழக்கமான வெளிப்பாடுகள்
முந்தைய அத்தியாயங்களில், தெளிவற்ற பொருத்தத்திற்காக (fuzzy matching) MySQL ஆனது LIKE …% ஐப் பயன்படுத்த முடியும் என்பதை நாம் கற்றுக்கொண்டோம்.
MySQL மற்ற வழக்கமான வெளிப்பாடுகளின் பொருத்தத்தையும் ஆதரிக்கிறது. REGEXP ஆபரேட்டர் வழக்கமான வெளிப்பாடு பொருத்தத்திற்கு MySQL இல் பயன்படுத்தப்படுகிறது.
உங்களுக்கு PHP அல்லது Perl தெரிந்தால், இது மிகவும் நேரடியானது, ஏனெனில் MySQL இன் வழக்கமான வெளிப்பாடு பொருத்தம் இந்த ஸ்கிரிப்ட்களைப் போலவே உள்ளது.
பின்வரும் அட்டவணையில் உள்ள வழக்கமான வடிவங்கள் REGEXP ஆபரேட்டருக்குப் பயன்படுத்தப்படலாம்.
| முறை | விளக்கம் |
|---|---|
| ^ | உள்ளீட்டு சரத்தின் தொடக்கத்துடன் பொருந்துகிறது.^ RegExp பொருளின் மல்டிலைன் பண்பு அமைக்கப்பட்டால், '\n' அல்லது '\r' க்குப் பின் இருக்கும் நிலையுடன் பொருந்தும். |
| $ | உள்ளீட்டு சரத்தின் முடிவைப் பொருத்துகிறது.RegExp ஆப்ஜெக்ட்டின் மல்டிலைன் பண்பு அமைக்கப்பட்டால், $ '\n' அல்லது '\r'க்கு முந்தைய நிலையுடன் பொருந்தும். |
| . | "\n" தவிர எந்த ஒரு எழுத்துக்கும் பொருந்தும்.'\n' உட்பட எந்த எழுத்தையும் பொருத்த, '[.\n]' போன்ற வடிவத்தைப் பயன்படுத்தவும். |
| [...] | எழுத்துக்களின் தொகுப்பு.உள்ள எந்த ஒரு எழுத்துக்கும் பொருந்தும்.எடுத்துக்காட்டாக, '[abc]' என்பது "plain" இல் 'a'. |
| [^…] | எதிர்மறை எழுத்துத் தொகுப்பு.இல்லாத எந்த எழுத்துக்கும் பொருந்தும்.எடுத்துக்காட்டாக, '[^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 என்பது எதிர்மில்லாத முழு எண்.சரியாக n முறை பொருந்தும்.எடுத்துக்காட்டாக, "பாப்" இல் உள்ள 'o' உடன் 'o{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$';
சென் வெய்லியாங்கின் வலைப்பதிவில் ( https://www.chenweiliang.com/ ) பகிரப்பட்ட "How to Match Using Regular Expressions in MySQL Database? Usage of MySQL regexp like" என்ற கட்டுரை உங்களுக்குப் பயனுள்ளதாக இருக்கும் என நம்புகிறோம்.
இந்தக் கட்டுரையின் இணைப்பைத் தாராளமாகப் பகிரவும்: https://www.chenweiliang.com/cwl-492.html
