Αντιστοίχιση μοτίβου σε ερωτήματα SQL με χαρακτήρες μπαλαντέρ

click fraud protection

Η αντιστοίχιση προτύπων SQL σάς επιτρέπει να αναζητάτε μοτίβα σε δεδομένα, εάν δεν γνωρίζετε την ακριβή λέξη ή φράση που αναζητάτε. Αυτού του είδους SQL Το ερώτημα χρησιμοποιεί χαρακτήρες μπαλαντέρ για να ταιριάζει με ένα μοτίβο, αντί να το προσδιορίζει ακριβώς. Για παράδειγμα, μπορείτε να χρησιμοποιήσετε το μπαλαντέρ "C%" για να αντιστοιχίσετε οποιαδήποτε συμβολοσειρά που ξεκινά με ένα κεφαλαίο C.

Μεγεθυντικός φακός
Kate Ter Haar / Flickr / CC από 2.0

Χρήση του χειριστή LIKE

Για να χρησιμοποιήσετε μια παράσταση μπαλαντέρ σε ένα ερώτημα SQL, χρησιμοποιήστε τον τελεστή LIKE σε έναν όρο WHERE και επισυνάψτε το μοτίβο μέσα σε μεμονωμένα εισαγωγικά.

Χρήση του% Wildcard για εκτέλεση μιας απλής αναζήτησης

Για να αναζητήσετε οποιονδήποτε υπάλληλο στη βάση δεδομένων σας με επώνυμο που αρχίζει με το γράμμα C, χρησιμοποιήστε την ακόλουθη δήλωση Transact-SQL:

ΕΠΙΛΟΓΗ *
ΑΠΟ υπαλλήλους
ΠΟΥ το τελευταίο όνομα ονομάζεται «C%»

Παράλειψη μοτίβων χρησιμοποιώντας τη λέξη-κλειδί ΔΕΝ

Χρησιμοποιήστε τη λέξη-κλειδί ΔΕΝ για να επιλέξετε εγγραφές που δεν ταιριάζουν με το μοτίβο. Για παράδειγμα, αυτό το ερώτημα επιστρέφει όλες τις εγγραφές των οποίων το τελευταίο όνομα

instagram viewer
δεν αρχίστε με C:

ΕΠΙΛΟΓΗ *
ΑΠΟ υπαλλήλους
ΠΟΥ το επώνυμο ΔΕΝ Αρέσει Σ 'C%'

Αντιστοίχιση μοτίβου οπουδήποτε Χρησιμοποιώντας το% Wildcard δύο φορές

Χρησιμοποιήστε δύο παρουσίες του % μπαλαντέρ για να ταιριάζει με ένα συγκεκριμένο μοτίβο οπουδήποτε. Αυτό το παράδειγμα επιστρέφει όλες τις εγγραφές που περιέχουν C οπουδήποτε στο επώνυμο:

ΕΠΙΛΟΓΗ *
ΑΠΟ υπαλλήλους
ΠΟΥ το τελευταίο_όνομα LIKE '% C%'

Εύρεση ενός αγώνα μοτίβου σε μια συγκεκριμένη θέση

Χρησιμοποιήστε το _ μπαλαντέρ για την επιστροφή δεδομένων σε συγκεκριμένη τοποθεσία. Αυτό το παράδειγμα ταιριάζει μόνο εάν το C εμφανίζεται στην τρίτη θέση της στήλης επώνυμου:

ΕΠΙΛΟΓΗ *
ΑΠΟ υπαλλήλους
ΠΟΥ το τελευταίο_όνομα LIKE '_ _C%'

Υποστηριζόμενες εκφράσεις Wildcard στο Transact SQL

Υπάρχουν πολλές εκφράσεις μπαλαντέρ που υποστηρίζονται από το Transact SQL:

  • ο % Το μπαλαντέρ αντιστοιχεί σε μηδενικούς ή περισσότερους χαρακτήρες οποιουδήποτε τύπου και μπορεί να χρησιμοποιηθεί για τον ορισμό μπαλαντέρ τόσο πριν όσο και μετά το μοτίβο. Εάν είστε εξοικειωμένοι με την αντιστοίχιση μοτίβου DOS, είναι το ισοδύναμο της * μπαλαντέρ σε αυτήν τη σύνταξη.
  • ο _ Το μπαλαντέρ αντιστοιχεί ακριβώς σε έναν χαρακτήρα οποιουδήποτε τύπου. Είναι το ισοδύναμο του ? μπαλαντέρ στην αντιστοίχιση μοτίβου DOS.
  • Καθορίστε μια λίστα χαρακτήρων περικλείοντάς τους σε αγκύλες. Για παράδειγμα, το μπαλαντέρ [aeiou] ταιριάζει με κάθε φωνήεν.
  • Καθορίστε μια σειρά χαρακτήρων περικλείοντας το εύρος σε αγκύλες. Για παράδειγμα, το μπαλαντέρ [είμαι] ταιριάζει με οποιοδήποτε γράμμα στο πρώτο μισό του αλφαβήτου.
  • Ακυρώστε μια σειρά χαρακτήρων, συμπεριλαμβάνοντας τον χαρακτήρα καράτι ακριβώς μέσα στο άνοιγμα της αγκύλης. Για παράδειγμα, [^ aeiou] ταιριάζει με οποιονδήποτε χαρακτήρα χωρίς φωνήεν [^ α-μ] ταιριάζει με οποιονδήποτε χαρακτήρα όχι στο πρώτο μισό του αλφαβήτου.

Συνδυασμός μπαλαντέρ για σύνθετα μοτίβα

Συνδυάστε αυτά τα μπαλαντέρ σε πολύπλοκα μοτίβα για να εκτελέσετε πιο σύνθετα ερωτήματα. Για παράδειγμα, ας υποθέσουμε ότι πρέπει να δημιουργήσετε μια λίστα με όλους τους υπαλλήλους σας που έχουν ονόματα που ξεκινούν με ένα γράμμα από το πρώτο μισό του αλφαβήτου, αλλά δεν τελειώνει με φωνήεν. Θα μπορούσατε να χρησιμοποιήσετε το ακόλουθο ερώτημα:

ΕΠΙΛΟΓΗ *
ΑΠΟ υπαλλήλους
ΠΟΤΕ επώνυμο LIKE '[a-m]% [^ aeiou]'

Ομοίως, θα μπορούσατε να δημιουργήσετε μια λίστα με όλους τους υπαλλήλους με επώνυμα που αποτελούνται από ακριβώς τέσσερις χαρακτήρες χρησιμοποιώντας τέσσερις εμφανίσεις του _ πρότυπο:

ΕΠΙΛΟΓΗ *
ΑΠΟ υπαλλήλους
ΠΟΤΕ επώνυμο Αρέσει "____"

Όπως μπορείτε να πείτε, η χρήση των δυνατοτήτων αντιστοίχισης προτύπων SQL προσφέρει στους χρήστες της βάσης δεδομένων τη δυνατότητα να ξεπεράσουν τα απλά ερωτήματα κειμένου και να εκτελέσουν προηγμένες λειτουργίες αναζήτησης.

instagram story viewer