სტატიების დირექტორია
MySQL მონაცემთა ბაზაროგორ ემთხვევა რეგულარული გამოხატულება?MySQL regexp-ის მსგავსი გამოყენება
MySQL რეგულარული გამონათქვამები
წინა თავებში გავიგეთ, რომ MySQL შეიძლება იყოს მოიწონე...% ბუნდოვანი შესატყვისისთვის.
MySQL ასევე მხარს უჭერს სხვა რეგულარული გამონათქვამების შესატყვისს. REGEXP ოპერატორი გამოიყენება MySQL-ში რეგულარული გამონათქვამების შესატყვისად.
თუ იცით PHP ან Perl, ეს საკმაოდ მარტივია, რადგან MySQL-ის რეგულარული გამოხატვის შესატყვისი მსგავსია ამ სკრიპტების მსგავსი.
შემდეგი ცხრილის რეგულარული შაბლონები შეიძლება გამოყენებულ იქნას REGEXP ოპერატორზე.
| რეჟიმი | აღწერა |
|---|---|
| ^ | შეესაბამება შეყვანის სტრიქონის დასაწყისს.^ ასევე ემთხვევა პოზიციას '\n' ან '\r'-ის შემდეგ, თუ დაყენებულია RegExp ობიექტის Multiline თვისება. |
| $ | შეესაბამება შეყვანის სტრიქონის ბოლოს.თუ RegExp ობიექტის Multiline თვისება დაყენებულია, $ ასევე ემთხვევა პოზიციას '\n' ან '\r'-მდე. |
| . | ემთხვევა ნებისმიერ სიმბოლოს გარდა "\n".ნებისმიერი სიმბოლოს შესატყვისად, მათ შორის '\n', გამოიყენეთ ნიმუში, როგორიცაა '[.\n]'. |
| [...] | პერსონაჟების კოლექცია.შეესაბამება რომელიმე მოცემულ სიმბოლოს.მაგალითად, '[abc]' ემთხვევა "plai"a" n-ში". |
| [^…] | უარყოფითი პერსონაჟების ნაკრები.შეესაბამება ნებისმიერ სიმბოლოს, რომელიც არ შეიცავს.მაგალითად, '[^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{2}“ არ ემთხვევა „o“-ს „ბობში“, მაგრამ ემთხვევა ორივე o-ს „საჭმელში“. |
| {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$';
იმედი ჩენ ვეილიანგის ბლოგი ( https://www.chenweiliang.com/ ) გააზიარა „როგორ დავამთხვიოთ რეგულარული გამონათქვამები MySQL მონაცემთა ბაზაში? MySQL regexp like use“ დაგეხმარებათ.
კეთილი იყოს თქვენი მობრძანება ამ სტატიის ბმულის გასაზიარებლად:https://www.chenweiliang.com/cwl-492.html
