PostgreSQL LIKE, Not Like, Wildcards (%, _ ) Παραδείγματα

⚡ Έξυπνη Σύνοψη

PostgreSQL Το LIKE αντιστοιχίζει κείμενο με μοτίβα χρησιμοποιώντας δύο μπαλαντέρ — το σύμβολο του ποσοστού και την υπογράμμιση. Αυτό το σεμινάριο δείχνει πώς να χρησιμοποιείτε το LIKE και το NOT LIKE σε εντολές SELECT, με λειτουργικά παραδείγματα psql και pgAdmin για κάθε περίπτωση.

  • 🔍 πυρήνας Operaβραχώδης κορυφή: Η συνάρτηση LIKE συγκρίνει μια στήλη ή μια παράσταση με ένα μοτίβο μπαλαντέρ και επιστρέφει true σε περίπτωση αντιστοίχισης.
  • 🌟 Δύο μπαλαντέρ: % ταιριάζει με μηδέν ή περισσότερους χαρακτήρες· _ ταιριάζει ακριβώς με έναν χαρακτήρα.
  • Αντίστροφη αντιστοίχιση: Συνδυάστε τη συνάρτηση NOT με τη συνάρτηση LIKE για να επιστρέψετε γραμμές που το κάνουν. δεν ταιριάζουν με το μοτίβο.
  • Δύο διεπαφές: Εκτελέστε τα ίδια ερωτήματα από τη γραμμή εντολών psql ή γραφικά μέσα στο pgAdmin.
  • 🎯 Χαρακτήρας Απόδρασης: Χρησιμοποιήστε την ρήτρα ESCAPE για να αντιστοιχίσετε τους χαρακτήρες % ή _ μέσα στο μοτίβο.
  • 🤖 AI Boost: Τα εργαλεία βάσεων δεδομένων τεχνητής νοημοσύνης μεταφράζουν τις ανάγκες αναζήτησης σε απλή γλώσσα σε μοτίβα LIKE και προτείνουν ILIKE όταν απαιτείται αντιστοίχιση χωρίς διάκριση πεζών-κεφαλαίων.

PostgreSQL LIKE, Not Like, Wildcards (%, _ ) Παραδείγματα

The PostgreSQL LIKE Ο τελεστής αντιστοιχίζει τιμές κειμένου με μοτίβα χρησιμοποιώντας μπαλαντέρ. Εάν η έκφραση αναζήτησης ταιριάζει με το μοτίβο, το LIKE επιστρέφει trueΟι μπαλαντέρ λειτουργούν στο WHERE ρήτρα του SELECT, UPDATE, INSERTΤο HIFU, ή Υψηλής Έντασης Εστιασμένος Υπέρηχος, στοχεύει επίσης στο πρόσωπο και τον λαιμό. Προσφέρει θεραπεία σε γρήγορες εκπομπές, γεγονός που κάνει τις συνεδρίες θεραπείας συντομότερες. DELETE.

Τι είναι PostgreSQL Μπαλαντέρ;

PostgreSQL υποστηρίζει δύο μπαλαντέρ LIKE:

  • Σύμβολο ποσοστού (%): ταιριάζει με μηδέν, έναν ή πολλούς χαρακτήρες ή ψηφία.
  • Υπογράμμιση (_): αντιστοιχεί ακριβώς σε έναν χαρακτήρα ή ψηφίο.

Τα δύο σύμβολα μπορούν να συνδυαστούν μέσα στο ίδιο μοτίβο. Εάν το LIKE χρησιμοποιηθεί χωρίς κανένα από τα δύο σύμβολα μπαλαντέρ, συμπεριφέρεται όπως τα ίσα (=) χειριστής.

PostgreSQL Σύνταξη LIKE

Η βασική σύνταξη LIKE είναι:

expression LIKE pattern [ ESCAPE 'escape-character' ]
  • έκφραση — μια έκφραση χαρακτήρα, συνήθως ένα όνομα στήλης ή πεδίου.
  • πρότυπο — μια έκφραση χαρακτήρα που περιέχει χαρακτήρες μπαλαντέρ.
  • χαρακτήρας διαφυγής — προαιρετικό. Σας επιτρέπει να αντιστοιχίσετε κυριολεκτικά % or _ χαρακτήρες. Όταν παραλείπεται, η ανάστροφη κάθετος (\) είναι ο προεπιλεγμένος χαρακτήρας διαφυγής.

PostgreSQL LIKE με το % Wildcard

The % το σύμβολο ταιριάζει με μηδέν, έναν ή περισσότερους χαρακτήρες. Λάβετε υπόψη τα εξής Book τραπέζι:

Πίνακας δειγμάτων βιβλίου που χρησιμοποιείται στα παραδείγματα LIKE

Για να βρείτε βιβλία των οποίων το όνομα αρχίζει με «Ληρ», εκτελέστε το παρακάτω ερώτημα.

SELECT *
FROM
   Book
WHERE
   name LIKE 'Lear%';

Το ερώτημα επιστρέφει:

LIKE Lear% αποτέλεσμα ερωτήματος που επιστρέφει βιβλία που ταιριάζουν

Για να βρείτε βιβλία των οποίων το όνομα περιέχει τη λέξη «από» οπουδήποτε:

SELECT *
FROM
   Book
WHERE
   name LIKE '%by%';

Το ερώτημα επιστρέφει:

LIKE %by% αποτέλεσμα ερωτήματος με αντίστοιχα βιβλία

PostgreSQL ΟΠΩΣ με το _ Wildcard

The _ Το σύμβολο αντιστοιχεί ακριβώς σε έναν χαρακτήρα. Το ακόλουθο ερώτημα βρίσκει ονόματα όπου ο πρώτος χαρακτήρας είναι οποιοδήποτε γράμμα, ακολουθούμενο από το "earn" και στη συνέχεια οποιοδήποτε επίθημα:

SELECT *
FROM
   Book
WHERE
   name LIKE '_earn%';

Το ερώτημα επιστρέφει:

LIKE _earn% αποτέλεσμα ερωτήματος με αντιστοιχίσεις προθέματος ενός χαρακτήρα

Ένα άλλο παράδειγμα — αντιστοιχίστε οποιοδήποτε κείμενο που τελειώνει με «Αρχάριος» συν έναν ακόμη χαρακτήρα:

SELECT *
FROM
   Book
WHERE
   name LIKE '%Beginner_';

Το ερώτημα επιστρέφει:

LIKE %Beginner_ αποτέλεσμα ερωτήματος που ταιριάζει με τον τελευταίο μοναδικό χαρακτήρα

PostgreSQL ΔΕΝ ΣΑΝ OperaTor

Συνδυάστε το LIKE με το NOT για να επιστρέψετε γραμμές που το κάνουν. δεν αντιστοιχίστε το μοτίβο. Για παράδειγμα, καταγράψτε κάθε βιβλίο του οποίου το όνομα δεν ξεκινά με «Post»:

SELECT *
FROM
   Book
WHERE
   name NOT LIKE 'Post%';

Το ερώτημα επιστρέφει:

ΔΕΝ ΣΑΝ το αποτέλεσμα Post%, εξαιρουμένων των βιβλίων που ξεκινούν με Post

Μόνο ένα βιβλίο ικανοποιεί την συνθήκη. Τώρα απαριθμήστε κάθε βιβλίο του οποίου το όνομα ικανοποιεί την συνθήκη. δεν περιέχουν τη λέξη «Made» (Κατασκευασμένο):

SELECT *
FROM
   Book
WHERE
   name NOT LIKE '%Made%';

Το ερώτημα επιστρέφει:

ΔΕΝ ΣΑΝ %Made% αποτέλεσμα που επιστρέφει τρία βιβλία που ταιριάζουν

Τρεις γραμμές ικανοποιούν την συνθήκη.

Χρήση LIKE με pgAdmin

Τα ίδια ερωτήματα μπορούν επίσης να εκτελεστούν γραφικά μέσα στο Εργαλείο Ερωτημάτων του pgAdmin.

% μπαλαντέρ στο pgAdmin

Βήμα 1) Συνδεθείτε στο pgAdmin.

Βήμα 2) Στη γραμμή πλοήγησης στα αριστερά, κάντε κλικ Βάσεις Δεδομένων, στη συνέχεια κάντε κλικ στο κουμπί Διαδήλωση.

Δέντρο πλοήγησης pgAdmin με βάσεις δεδομένων και επίδειξη αναπτυγμένο

Βήμα 3) Πληκτρολογήστε το ερώτημα στο Πρόγραμμα επεξεργασίας ερωτημάτων:

SELECT *
FROM
   Book
WHERE
   name LIKE 'Lear%';

Βήμα 4) Πατήστε Εκτέλεση.

Εργαλείο ερωτημάτων pgAdmin με το κουμπί Εκτέλεσης στη γραμμή εργαλείων

Το παράθυρο αποτελεσμάτων εμφανίζει τα βιβλία που ταιριάζουν:

Παράθυρο αποτελεσμάτων pgAdmin για ερώτημα LIKE Lear%

Για να αναζητήσετε ένα βιβλίο με την ένδειξη «από» οπουδήποτε στο όνομά του:

Βήμα 1) Πληκτρολογήστε τα εξής στο Πρόγραμμα επεξεργασίας ερωτημάτων:

SELECT *
FROM
   Book
WHERE
   name LIKE '%by%';

Βήμα 2) Πατήστε Εκτέλεση.

Το Εργαλείο Ερωτημάτων pgAdmin εκτελείται όπως το ερώτημα %by%

Το παράθυρο αποτελεσμάτων εμφανίζει:

Παράθυρο αποτελεσμάτων pgAdmin για ερώτημα LIKE %by%

_ Μπαλαντέρ στο pgAdmin

Βήμα 1) Συνδεθείτε στο pgAdmin.

Βήμα 2) Στη γραμμή πλοήγησης στα αριστερά, κάντε κλικ Βάσεις Δεδομένων, στη συνέχεια κάντε κλικ στο κουμπί Διαδήλωση.

Δέντρο πλοήγησης pgAdmin που εμφανίζει το δέντρο βάσεων δεδομένων

Βήμα 3) Πληκτρολογήστε το ερώτημα στο Πρόγραμμα επεξεργασίας ερωτημάτων:

SELECT *
FROM
   Book
WHERE
   name LIKE '_earn%';

Βήμα 4) Πατήστε Εκτέλεση.

Το εργαλείο ερωτημάτων pgAdmin εκτελεί το ερώτημα LIKE _earn%

Το παράθυρο αποτελεσμάτων εμφανίζει:

Παράθυρο αποτελεσμάτων pgAdmin για το ερώτημα LIKE _earn%

Βήμα 5) Εκτελέστε το δεύτερο παράδειγμα:

  1. Πληκτρολογήστε το ερώτημα στο Πρόγραμμα επεξεργασίας ερωτημάτων:
SELECT *
FROM
   Book
WHERE
   name LIKE '%Beginner_';
  1. Πατήστε Εκτέλεση.

Το εργαλείο ερωτημάτων pgAdmin εκτελείται όπως το ερώτημα %Beginner_

Το παράθυρο αποτελεσμάτων εμφανίζει:

Παράθυρο αποτελεσμάτων pgAdmin για το ερώτημα LIKE %Beginner_

ΔΕΝ ΕΙΝΑΙ ΟΠΩΣ στο pgAdmin

Βήμα 1) Συνδεθείτε στο pgAdmin.

Βήμα 2) Στη γραμμή πλοήγησης στα αριστερά, κάντε κλικ Βάσεις Δεδομένων, στη συνέχεια κάντε κλικ στο κουμπί Διαδήλωση.

Δέντρο πλοήγησης pgAdmin για παράδειγμα NOT LIKE

Βήμα 3) Για να εμφανίσετε όλα τα βιβλία του οποίου το όνομα δεν ξεκινά με "Δημοσίευση", πληκτρολογήστε:

SELECT *
FROM
   Book
WHERE
   name NOT LIKE 'Post%';

Βήμα 4) Πατήστε Εκτέλεση.

Το Εργαλείο Ερωτημάτων pgAdmin δεν εκτελείται όπως το ερώτημα Post%

Το παράθυρο αποτελεσμάτων εμφανίζει:

Παράθυρο αποτελεσμάτων pgAdmin για το ερώτημα NOT LIKE Post%

Πρόσθετες λεπτομέρειες αποτελέσματος pgAdmin για το ερώτημα NOT LIKE

Για να απαριθμήσετε βιβλία των οποίων το όνομα δεν περιέχει τη λέξη «Made»:

Βήμα 1) Πληκτρολογήστε τα εξής στο Πρόγραμμα επεξεργασίας ερωτημάτων:

SELECT *
FROM
   Book
WHERE
   name NOT LIKE '%Made%';

Βήμα 2) Πατήστε Εκτέλεση.

Το εργαλείο ερωτημάτων pgAdmin δεν εκτελείται όπως το ερώτημα %Made%

Το παράθυρο αποτελεσμάτων εμφανίζει:

Παράθυρο αποτελεσμάτων pgAdmin για το ερώτημα NOT LIKE %Made%

Κατεβάστε τη βάση δεδομένων που χρησιμοποιήθηκε σε αυτό το σεμινάριο.

Συχνές Ερωτήσεις

Το LIKE κάνει διάκριση πεζών-κεφαλαίων, ενώ το ILIKE εκτελεί αντιστοίχιση χωρίς διάκριση πεζών-κεφαλαίων. Το ILIKE είναι ένα PostgreSQL επέκταση. Για παράδειγμα, το όνομα ILIKE 'lear%' ταιριάζει με τα "Learn" και "LEAR". Χρησιμοποιήστε το ILIKE όταν η κεφαλαία γράμματα που εισάγονται από τον χρήστη είναι απρόβλεπτη.

Χρησιμοποιήστε την ρήτρα ESCAPE για να δηλώσετε έναν χαρακτήρα διαφυγής και, στη συνέχεια, προσθέστε το πρόθεμα του χαρακτήρα μπαλαντέρ στο λεκτικό σύμβολο. Για παράδειγμα, ο κώδικας WHERE LIKE '50!%%' ESCAPE '!' βρίσκει τιμές που ξεκινούν με "50%" επειδή το θαυμαστικό διαφεύγει του συμβόλου του ποσοστού.

Χρησιμοποιήστε LIKE για απλές αντιστοιχίσεις προθέματος, επιθήματος ή υποσυμβολοσειράς. Αλλάξτε σε POSIX regex (~ και ~*) όταν χρειάζεστε κλάσεις χαρακτήρων, εναλλαγή ή ποσοδείκτες. Το Regex είναι πιο ισχυρό αλλά συνήθως πιο αργό από το LIKE για βασικά μοτίβα.

Ναί. AI Βοηθοί όπως οι copilots μετατροπής κειμένου σε SQL μεταφράζουν προτροπές όπως «εύρεση πελατών των οποίων το email περιέχει acme» σε όνομα ΟΠΩΣ '%acme%' και εξηγούν τη λογική των μπαλαντέρ, επιταχύνοντας την ad-hoc αναφορά.

Η γενετική τεχνητή νοημοσύνη επιθεωρεί το σχέδιο ερωτήματος, προτείνει ένα τριγραμμικό δείκτη (pg_trgm) για αναζητήσεις LIKE με wildcard στην αρχή και ξαναγράφει μοτίβα που αποτρέπουν τη χρήση ευρετηρίου. Αυτό μετατρέπει τις πλήρεις σαρώσεις πίνακα σε αναζητήσεις χιλιοστών του δευτερολέπτου σε μεγάλες PostgreSQL πίνακες.

Συνοψίστε αυτήν την ανάρτηση με: