mysql substring substring_index functions with examples
Μάθετε για τις λειτουργίες MySQL SUBSTRING και SUBSTRING_INDEX και τη χρήση του με πολλά παραδείγματα:
Η λειτουργία MySQL Substring χρησιμοποιείται για την εξαγωγή μιας συμβολοσειράς substring ή μερικής ενότητας στη συμβολοσειρά εισόδου. Όπως υποδηλώνει το όνομα, η λειτουργία Substring λειτουργεί σε μια είσοδο συμβολοσειράς και επιστρέφει ένα μικρότερο substring έναντι των καθορισμένων επιλογών.
Θα μάθουμε επίσης για μια άλλη παραλλαγή του SUBSTRING που ονομάζεται SUBSTRING_INDEX. Αυτή η συνάρτηση αποδέχεται την τιμή χαρακτήρα ή συμβολοσειράς ως οριοθέτη και εκτελεί αναζήτηση έναντι της δεδομένης οριοθετικής τιμής.
Θα εξετάσουμε επίσης ορισμένα παραδείγματα για να κατανοήσουμε πώς μπορούν να χρησιμοποιηθούν αυτές οι συναρτήσεις κατά την αναζήτηση δεδομένων ως μέρος των ερωτημάτων SELECT.
Τι θα μάθετε:
ΥΠΟΣΤΗΡΙΞΗ MySQL
Σύνταξη:
// format 1 SELECT SUBSTRING('{String Value}', {start_index}, {count}); // format 2 SELECT SUBSTRING('{String Value}'FROM {start_index} for {count});
Υπάρχουν 2 τρόποι με τους οποίους μπορούμε να χρησιμοποιήσουμε τη συνάρτηση SUBSTRING.
Ας κατανοήσουμε τη σύνταξη προτού αναλύσουμε τα παραδείγματα.
- {Τιμή συμβολοσειράς}: Αυτή είναι η πραγματική τιμή συμβολοσειράς ή το όνομα της στήλης που περιέχει τη συμβολοσειρά που πρέπει να επεξεργαστείτε.
- {start_index}: start_index είναι το ευρετήριο από αριστερά ή δεξιά από όπου θα ξεκινήσει το Substring. Οι τιμές μπορεί να είναι θετικές ή αρνητικές ανάλογα με το αν θέλουμε να εξαγάγουμε συμβολοσειρά από την αριστερή ή τη δεξιά πλευρά, αντίστοιχα. Αυτό θα γίνει πιο σαφές με τα παραδείγματα.
- {μετρώ}: Αυτό το πεδίο είναι προαιρετικό και καθορίζει τον αριθμό των χαρακτήρων από το start_index πεδίο για το οποίο πρέπει να εξαχθεί το Substring. Εάν δεν αναφέρεται, τότε ολόκληρη η συμβολοσειρά ξεκινώντας από το ταίριασμα start_index θα επέστρεφε.
Το format2 είναι μια παραλλαγή του format1 εκτός από το ότι είναι πιο ευανάγνωστο χρησιμοποιώντας λέξεις-κλειδιά FROM και FOR. Έτσι εδώ, το FROM χρησιμοποιείται πριν από την αναφορά του start_index τιμή και το FOR χρησιμοποιείται πριν από την αναφορά του μετρώ .
Ας δούμε μερικά παραδείγματα για να κατανοήσουμε τη συνάρτηση ΥΠΟΣΤΗΡΙΞΗ MySQL.
Ας πάρουμε την τιμή εισόδου συμβολοσειράς ως Βοήθεια για τη δοκιμή λογισμικού
Τα ευρετήρια συμβολοσειράς θα μοιάζουν με τον παρακάτω πίνακα
1 | δύο | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | έντεκα | 12 | 13 | 14 | δεκαπέντε | 16 | 17 | 18 | 19 | είκοσι | είκοσι ένα |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
μικρό | ή | φά | τ | σε | προς την | ρ | είναι | Τ | είναι | μικρό | τ | Εγώ | ν | σολ | Η | είναι | μεγάλο | Π |
Παράδειγμα ΥΠΟΣΤΗΡΙΞΗΣ MySQL
Χωρίς μέτρηση
Ας υποθέσουμε ότι θέλουμε να εξαγάγουμε το κείμενο βοήθειας από το παραπάνω String - H έχει δείκτη 18
Ας δούμε το ερώτημα παρακάτω:
SELECT SUBSTRING('Software Testing Help', 18) as extracted_string; SELECT SUBSTRING('Software Testing Help' FROM 18) as extracted_string; // Output Help
Είναι σημαντικό να σημειωθεί εδώ ότι δεν έχουμε αναφέρει καμία τιμή για το μετρώ, αλλά εξακολουθούμε να έχουμε τη σωστή συμβολοσειρά - αυτό συμβαίνει επειδή όταν παραλείπεται ο αριθμός, επιστρέφεται ολόκληρη η συμβολοσειρά που ξεκινά από το δεδομένο ευρετήριο.
Σε αυτήν την περίπτωση, αν αναφέρουμε το ευρετήριο έναρξης, για παράδειγμα, για «T» (δείκτης 10)
SELECT SUBSTRING('Software Testing Help', 10) as extracted_string; //Output Testing Help
Όπως μπορείτε να δείτε παραπάνω, η έξοδος περιέχει ολόκληρο το κείμενο «Δοκιμή βοήθειας».
Με μέτρηση
Τώρα, ας δούμε ένα παράδειγμα όπου θα αναφέρουμε το πλήθος των χαρακτήρων που θα επιστραφούν.
Ας υποθέσουμε ότι θέλουμε απλώς να εξαγάγουμε τη λέξη «Δοκιμή» από τη συμβολοσειρά «Βοήθεια δοκιμών λογισμικού». Στη συνέχεια μπορούμε να αναφέρουμε την καταμέτρηση ως - 7 (που είναι το μήκος της λέξης «Δοκιμή»)
Ας δούμε το ερώτημα παρακάτω:
SELECT SUBSTRING('Software Testing Help', 10, 7) as extracted_string; SELECT SUBSTRING('Software Testing Help' FROM 10 FOR 7) as extracted_string; //Output Testing
Εδώ έχουμε περιγράψει τόσο το αρχικό ευρετήριο όσο και τον αριθμό των χαρακτήρων ως μέρος του ερωτήματος για να λάβουμε το απαιτούμενο αποτέλεσμα.
Με αρνητικές τιμές ευρετηρίου
Μέχρι στιγμής, για τα παραδείγματα που έχουμε δει, έχουμε προσδιορίσει το start_index ως θετική τιμή.
Μπορούμε επίσης να καθορίσουμε το start_index ως αρνητικό, πράγμα που σημαίνει απλά ότι αντί να μετράει από αριστερά, ο κινητήρας MySQL θα προσπαθήσει να μετρήσει το ευρετήριο εκκίνησης από το τέλος της συμβολοσειράς.
Ας δούμε ένα παράδειγμα
Για τη συμβολοσειρά μας 'Βοήθεια δοκιμών λογισμικού', ας προσθέσουμε μια σειρά παρακάτω για να προσδιορίσουμε τα σωστά ευρετήρια
μεγάλο | 1 | δύο | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | έντεκα | 12 | 13 | 14 | δεκαπέντε | 16 | 17 | 18 | 19 | είκοσι | είκοσι ένα |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
μικρό | ή | φά | τ | σε | προς την | ρ | είναι | Τ | είναι | μικρό | τ | Εγώ | ν | σολ | Η | είναι | μεγάλο | Π | |||
Ρ | είκοσι ένα | είκοσι | 19 | 18 | 17 | 16 | δεκαπέντε | 14 | 13 | 12 | έντεκα | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | δύο | 1 |
Έτσι, η κάτω σειρά αντιπροσωπεύει τους σωστούς δείκτες. Τώρα ας υποθέσουμε ότι θέλουμε να εξαγάγουμε τη λέξη «Δοκιμή» χρησιμοποιώντας τη λειτουργία MySQL SUBSTRING με το σωστό ευρετήριο.
Ο σωστός δείκτης για το «T» στη δοκιμή είναι 12 (και ο αριστερός δείκτης είναι 10)
SELECT SUBSTRING('Software Testing Help', -12, 7) as extracted_string; SELECT SUBSTRING('Software Testing Help' FROM -12 FOR 7) as extracted_string; //Output Testing
Όπως μπορείτε να δείτε στο παραπάνω παράδειγμα, η αναφορά των σωστών δεικτών ως αρνητική τιμή θα αποφέρει το ίδιο αποτέλεσμα.
Ευρετήριο εκτός ορίων
Τώρα, δοκιμάστε μερικά αρνητικά σενάρια
- Όταν το start_index που καθορίζεται δεν υπάρχει: δηλ. ο καθορισμένος δείκτης είναι εκτός ορίων, τότε η έξοδος θα ήταν κενή.
SELECT SUBSTRING('Software Testing Help', 30, 2) as extracted_string; //output Empty String
- Όταν η καταμέτρηση που έχει καθοριστεί είναι αρνητική ή μεγαλύτερη από το συνολικό μήκος της συμβολοσειράς, τότε η έξοδος θα ήταν το υπόλοιπο της συμβολοσειράς (ξεκινώντας το καθορισμένο start_index).
SELECT SUBSTRING('Software Testing Help', 5, 100) as extracted_string; //output ware Testing Help
Μπορείτε να δείτε παραπάνω, εδώ ο αριθμός αναφέρθηκε ως 100, αλλά το String έχει μήκος μόνο 21 χαρακτήρες.
- Ας δοκιμάσουμε ένα ακόμη σενάριο με το πλήθος να αναφέρεται ως αρνητικό.
SELECT SUBSTRING('Software Testing Help', 5, -20) as extracted_string; //output Empty String
Εδώ επίσης, δεν θα υπάρχει σφάλμα και θα υπάρχει μόνο μια κενή συμβολοσειρά που θα ήταν η έξοδος.
MySQL SUBSTRING_INDEX
Αυτή είναι μια άλλη παραλλαγή της συνάρτησης MySQL SUBSTRING.
Εδώ, αντί να αναφέρουμε την πραγματική τιμή του start_index, μπορούμε απλώς να αναφέρουμε τον χαρακτήρα και το ευρετήριο και τον αριθμό των φορών που πρέπει να αναζητηθεί ο διαχωριστής πριν επιστρέψει η έξοδος.
Ένα σημαντικό σημείο που πρέπει να σημειωθεί εδώ είναι το SUBSTRING_INDEX
Συνάρτηση MySQL SUBSTRING INDEX:
SUBSTRING_INDEX({StringValue/Column},delimiter,n)
- {StringValue / Column}: Πραγματική εισαγωγή συμβολοσειράς ή το όνομα στήλης στο ερώτημα SELECT.
- Οριοθέτης: Είναι ο χαρακτήρας ή το υπόστρωμα που πρέπει να αναζητηθεί, για να εξαγάγετε την υπόλοιπη συμβολοσειρά ως έξοδο. Αυτή η τιμή είναι διάκριση πεζών-κεφαλαίων, επομένως θα πρέπει να καθοριστεί όπως εμφανίζεται στην πραγματική συμβολοσειρά.
- ν: Πλήθος οριοθέτη - δηλ. Όχι τις φορές που ο οριοθέτης πρέπει να αναζητηθεί πριν επιστρέψει η συμβολοσειρά.
Ας το καταλάβουμε με τη βοήθεια ορισμένων παραδειγμάτων.
Θα χρησιμοποιήσουμε την ίδια συμβολοσειρά «Βοήθεια δοκιμής λογισμικού» με τη συμβολοσειρά εισόδου για όλα τα παραδείγματα που πρόκειται να συζητήσουμε στην επόμενη ενότητα παρακάτω.
Αναζήτηση για έναν χαρακτήρα
Κατά την αναζήτηση του χαρακτήρα «T», η έξοδος θα ήταν «Λογισμικό». Παρατηρήστε ότι ο επιπλέον χώρος μετά τη λέξη Λογισμικό θα συμπεριληφθεί επίσης.
SELECT SUBSTRING_INDEX('Software Testing Help', 'T', 1) as extracted_string; //Output Software
Αναζητήστε έναν χαρακτήρα που εμφανίζεται περισσότερες από μία φορές. Εδώ είναι - «e»
SELECT SUBSTRING_INDEX('Software Testing Help', 'e', 1) as extracted_string; //Output Softwar
Σε αυτό το παράδειγμα: δεδομένου ότι έχουμε καθορίσει την καταμέτρηση ως 1, η έξοδος θα είναι String έως ότου επιτευχθεί η πρώτη εμφάνιση του «e».
Αλλάξτε το πλήθος σε 2 για τον ίδιο χαρακτήρα «e».
SELECT SUBSTRING_INDEX('Software Testing Help', 'e', 2) as extracted_string; //Output Software T
Τώρα, μπορούμε να δούμε, επιστρέφεται η συμβολοσειρά μέχρι τη δεύτερη εμφάνιση του χαρακτήρα «e».
Πάρτε ένα άλλο παράδειγμα για να καταλάβετε ότι ο ΥΠΟΣΤΡΩΜΑΤΟΣ ΔΕΙΚΤΗΣ είναι πεζός. Ας δοκιμάσουμε με το γράμμα «t» αντί για «T»
καλές τοποθεσίες για να παρακολουθήσετε δωρεάν anime
SELECT SUBSTRING_INDEX('Software Testing Help', 't', 1) as extracted_string; //Output Sof
Αναζήτηση για συμβολοσειρά
Μπορούμε να χρησιμοποιήσουμε τη συνάρτηση SUBSTRING INDEX για αναζήτηση μιας συμβολοσειράς αντί για χαρακτήρα. Ας αναζητήσουμε τη λέξη «Δοκιμή».
SELECT SUBSTRING_INDEX('Software Testing Help', 'Testing', 1) as extracted_string; //Output Software
Αναζήτηση για μια υπάρχουσα συμβολοσειρά
Χρήση ΥΠΟΔΟΜΗΣ ΔΕΙΚΤΗΣ με συμβολοσειρά που δεν υπάρχει.
SELECT SUBSTRING_INDEX('Software Testing Help', 'abc', 1) as extracted_string; //Output Software Testing Help
Η έξοδος μπορεί να είναι λίγο απροσδόκητη εδώ. Αλλά επειδή η μηχανή MySQL δεν μπορεί να βρει την απαιτούμενη αντιστοίχιση, επιστρέφει ολόκληρη τη συμβολοσειρά ως έξοδο.
Αναζήτηση για χαρακτήρα ή συμβολοσειρά με αντίστροφη σειρά
Παρόμοια με τη συνάρτηση SUBSTRING, η συνάρτηση SUBSTRING INDEX επιτρέπει επίσης την αναφορά του αριθμού ως αρνητικών αριθμών. Αυτό σημαίνει, αντί να διασχίζει από αριστερά προς τα δεξιά, το MySQL Engine θα προσπαθήσει να βρει μια αντιστοίχιση από τα δεξιά προς τα αριστερά.
Καταλάβετε αυτό με τη βοήθεια ορισμένων παραδειγμάτων.
SELECT SUBSTRING_INDEX('Software Testing Help', 'T', -1) as extracted_string; //Output esting Help
Στο παραπάνω παράδειγμα, μπορείτε να δείτε ότι ο οριοθέτης είναι 'T' ενώ ο αριθμός είναι -1. Έτσι, η έξοδος θα ήταν Substring από τα δεξιά μέχρι την πρώτη αντιστοίχιση για το γράμμα «T».
Εφαρμογές της συνάρτησης MySQL SUBSTRING
Χρησιμοποιούμε γενικά τις συναρτήσεις MySQL String κατά την αναζήτηση δεδομένων από 1 ή πολλαπλούς πίνακες. Μπορεί να χρησιμοποιηθεί για τον διαχωρισμό τιμών σε μια στήλη ή απλώς για την εμφάνιση των βασικών τιμών ανάλογα με τις ανάγκες.
Παράδειγμα: Ας υποθέσουμε ότι έχουμε έναν πίνακα λεπτομερειών υπαλλήλου που αποτελείται από αναγνωριστικό, όνομα και διεύθυνση.
Και η στήλη διευθύνσεων έχει μορφή - {HouseNo}, {StreetName}
Ακολουθεί το σενάριο για τη δημιουργία πίνακα και την εισαγωγή εικονικών δεδομένων:
CREATE TABLE employee_details (name VARCHAR(100), address VARCHAR(100), age INT); INSERT INTO employee_details values ('Akash Malhotra', '22,Defence Colony', 24), ('Steve Wilson','12/4,Wilson Street',28), ('Monica Singh','190,Smith Lane',32);
Χρησιμοποιήστε τη συνάρτηση MySQL SUBSTRING για να έχετε το τον αριθμό του σπιτιού εξάγεται από τη στήλη διευθύνσεων όπως φαίνεται παρακάτω.
SELECT name, SUBSTRING_INDEX(address,',',1) as house_no, address, age from employee_details
Παραγωγή:
όνομα | σπίτι_όχι | διεύθυνση | ηλικία |
---|---|---|---|
Akash malhotra | 22 | 22, αποικία άμυνας | 24 |
Steve Wilson | 12/4 | 12/4, Wilson Street | 28 |
Μόνικα Σινγκ | 190 | 190, Σμιθ Λαν | 32 |
Στο παραπάνω ερώτημα, μπορείτε να δείτε ότι χρησιμοποιήσαμε τη συνάρτηση SUBSTRING_INDEX για να λάβουμε τον αριθμό σπιτιού από τη στήλη διευθύνσεων και ότι χρησιμοποιήσαμε το ',' ως οριοθέτη.
Παρόμοια με αυτό, μπορεί να υπάρχουν πολλές εφαρμογές όπου θα θέλαμε να εξαγάγουμε τη συμβολοσειρά για να πάρουμε κάποιες σημαντικές πληροφορίες από μια μεγαλύτερη είσοδο συμβολοσειράς ή την τιμή της στήλης.
Συχνές Ερωτήσεις
Q # 1) Ποια συνάρτηση MySQL επιστρέφει τη θέση της πρώτης εμφάνισης μιας ΥΠΟΔΟΧΗΣ στη συμβολοσειρά;
Απάντηση: Η MySQL παρέχει 2 συναρτήσεις για να επιστρέψετε ή να εξαγάγετε μια ΥΠΟΔΟΜΗ από μια δεδομένη τιμή συμβολοσειράς ή στήλης.
- ΥΠΟΣΤΗΡΙΞΗ
Παράδειγμα:
SELECT SUBSTRING('Test Input',1,4) as extracted_string; // Output Test
- ΔΕΙΚΤΗΣ ΥΠΟΒΟΛΗΣ
Παράδειγμα:
SELECT SUBSTRING_INDEX('Test Input','t',1) as extracted_string; //Output Tes
Q # 2) Τι είναι το SUBSTRING_INDEX στο MySQL;
Απάντηση: Η συνάρτηση SUBSTRING_INDEX είναι μια παραλλαγή της συνάρτησης SUBSTRING. Ενώ βρίσκεστε στη συνήθη συνάρτηση SUBSTRING, πρέπει να αναφέρετε το ευρετήριο ως αριθμό στη συμβολοσειρά εισόδου, για τη συνάρτηση SUBSTRING_INDEX, μπορείτε να αναφέρετε είτε έναν χαρακτήρα είτε ένα μικρότερο υπόστρωμα για αναζήτηση.
Προτεινόμενη ανάγνωση = >> Εκμάθηση MySQL COUNT
συμπέρασμα
Σε αυτό το σεμινάριο, μάθαμε για τις λειτουργίες MySQL SUBSTRING και SUBSTRING_INDEX. Και οι δύο λειτουργίες εξάγουν ένα Substring έναντι της δεδομένης συμβολοσειράς εισόδου, αλλά λειτουργούν με ελαφρώς διαφορετικό τρόπο.
Το SUBSTRING αναμένει το ευρετήριο ως τους πραγματικούς αριθμούς, ενώ το SUBSTRING_INDEX μπορεί να έχει το οριοθέτη καθορισμένο ως τιμή χαρακτήρα ή συμβολοσειρά, και στη συνέχεια η μηχανή MySQL μπορεί να εξαγάγει ενάντια στην απαιτούμενη συμβολοσειρά συμβολοσειράς ή χαρακτήρα
Και οι δύο αυτές λειτουργίες χρησιμοποιούνται σε μεγάλο βαθμό όπου μια στήλη με πολλά στοιχεία μπορεί να εξαχθεί σε υπο-στήλες χρησιμοποιώντας λογική εξαγωγής String με βάση τις κατάλληλες απαιτήσεις.
Συνιστώμενη ανάγνωση
- C # String Tutorial - Μέθοδοι συμβολοσειράς με παραδείγματα κώδικα
- Java substring () Μέθοδος - Εκμάθηση με παραδείγματα
- Το Java String περιέχει () Μέθοδος Εκμάθησης με Παραδείγματα
- Java String membandingkanTo Method Με Παραδείγματα Προγραμματισμού
- Λειτουργίες συμβολοσειράς στο C ++: getline, substring, string string & More
- Λειτουργίες μετατροπής συμβολοσειράς C ++: συμβολοσειρά σε int & int σε συμβολοσειρά
- Λειτουργίες συμβολοσειράς Python
- MySQL CONCAT και GROUP_CONCAT Λειτουργίες με παραδείγματα