តើកន្សោមធម្មតានៃមូលដ្ឋានទិន្នន័យ MySQL ត្រូវគ្នាយ៉ាងដូចម្តេច? MySQL regexp ដូចជាការប្រើប្រាស់

មូលដ្ឋានទិន្នន័យ MySQLតើកន្សោមធម្មតាត្រូវគ្នាយ៉ាងដូចម្តេច?MySQL regexp ដូចជាការប្រើប្រាស់

MySQL កន្សោមធម្មតា។

នៅក្នុងជំពូកមុន យើងបានរៀនថា MySQL អាចឆ្លងកាត់បាន។ ចូលចិត្ត…% ដើម្បីអនុវត្តការផ្គូផ្គង fuzzy ។

MySQL ក៏គាំទ្រការផ្គូផ្គងកន្សោមធម្មតាផ្សេងទៀតផងដែរ។ ប្រតិបត្តិករ REGEXP ត្រូវបានប្រើនៅក្នុង MySQL សម្រាប់ការផ្គូផ្គងកន្សោមធម្មតា។

ប្រសិនបើអ្នកស្គាល់ PHP ឬ Perl វាងាយស្រួលធ្វើណាស់ព្រោះការផ្គូផ្គងកន្សោមធម្មតារបស់ MySQL គឺស្រដៀងនឹងស្គ្រីបទាំងនេះ។

គំរូធម្មតានៅក្នុងតារាងខាងក្រោមអាចត្រូវបានអនុវត្តចំពោះប្រតិបត្តិករ REGEXP ។

របៀប។ការពិពណ៌នា
^ផ្គូផ្គងការចាប់ផ្តើមនៃខ្សែអក្សរបញ្ចូល។ ប្រសិនបើលក្ខណសម្បត្តិពហុបន្ទាត់នៃវត្ថុ RegExp ត្រូវបានកំណត់ ^ ក៏ត្រូវគ្នានឹងទីតាំងបន្ទាប់ពី '\n' ឬ '\r' ។
$ផ្គូផ្គងចុងបញ្ចប់នៃខ្សែអក្សរបញ្ចូល។ ប្រសិនបើលក្ខណសម្បត្តិពហុបន្ទាត់នៃវត្ថុ RegExp ត្រូវបានកំណត់ $ ក៏ត្រូវគ្នានឹងទីតាំងមុន '\n' ឬ '\r' ។
.ផ្គូផ្គងតួអក្សរតែមួយ លើកលែងតែ "\n" ។ ដើម្បីផ្គូផ្គងតួអក្សរណាមួយរួមទាំង '\n' ប្រើលំនាំដូចជា '[.\n]' ។
[... ]ការប្រមូលតួអក្សរ។ ផ្គូផ្គងតួអក្សរណាមួយដែលមាន។ ឧទាហរណ៍ '[abc]' នឹងផ្គូផ្គង "plai'a' ក្នុង n" ។
[^…]បណ្តុំនៃតួអក្សរអវិជ្ជមាន។ ផ្គូផ្គងតួអក្សរណាមួយដែលមិនរួមបញ្ចូល។ ឧទាហរណ៍ '[^abc]' ត្រូវគ្នានឹង 'p' នៅក្នុង "plain" ។
p1|p2|p3ផ្គូផ្គង p1 ឬ p2 ឬ p3 ។ ឧទាហរណ៍ 'z|food' ត្រូវគ្នានឹង "z" ឬ "food" ។ '(z|f)ood' ត្រូវគ្នានឹង "zood" ឬ "food" ។
*ផ្គូផ្គង​កន្សោម​រង​មុន​សូន្យ ឬ​ច្រើន​ដង។ ឧទាហរណ៍ zo* ផ្គូផ្គង "z" និង "zoo" ។ * ស្មើនឹង {0,} ។
+ផ្គូផ្គងកន្សោមរងមុនមួយ ឬច្រើនដង។ ឧទាហរណ៍ 'zo+' ផ្គូផ្គង "zo" និង "zoo" ប៉ុន្តែមិនមែន "z" ទេ។ + ស្មើនឹង {1,} ។
{n}n គឺជាចំនួនគត់ដែលមិនអវិជ្ជមាន។ ការប្រកួតដែលបានកំណត់ n ដង។ ឧទាហរណ៍ 'o{2}' មិនអាចផ្គូផ្គង 'o' នៅក្នុង "Bob" បានទេ ប៉ុន្តែវាអាចផ្គូផ្គង o's ទាំងពីរនៅក្នុង "food"។
{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$';

Hope Chen Weiliang Blog ( https://www.chenweiliang.com/ ) បានចែករំលែក "តើធ្វើដូចម្តេចដើម្បីផ្គូផ្គងកន្សោមធម្មតានៅក្នុងមូលដ្ឋានទិន្នន័យ MySQL?" MySQL regexp ដូចជាការប្រើប្រាស់" វានឹងមានប្រយោជន៍សម្រាប់អ្នក។

សូមស្វាគមន៍ចំពោះការចែករំលែកតំណភ្ជាប់នៃអត្ថបទនេះ៖https://www.chenweiliang.com/cwl-492.html

ដើម្បីដោះសោល្បិចលាក់កំបាំងបន្ថែមទៀត🔑 សូមស្វាគមន៍មកកាន់ឆានែល Telegram របស់យើង!

Share និង Like បើចូលចិត្ត! ការចែករំលែក និងការចូលចិត្តរបស់អ្នកគឺជាការលើកទឹកចិត្តបន្តរបស់យើង!

 

发表评论។

អាសយដ្ឋានអ៊ីមែលរបស់អ្នកនឹងមិនត្រូវបានផ្សព្វផ្សាយទេ។ 必填项已用។ * 标注។

រមូរទៅកំពូល