MySQL WHERE Ρήτρα: ΚΑΙ, Ή, IN, NOT IN Παράδειγμα ερωτήματος
Τι είναι η ρήτρα WHERE MySQL?
WHERE, in MySQL είναι μια λέξη-κλειδί που χρησιμοποιείται για τον καθορισμό των ακριβών κριτηρίων των δεδομένων ή των γραμμών που θα επηρεαστούν από την καθορισμένη πρόταση SQL. Ο όρος WHERE μπορεί να χρησιμοποιηθεί με εντολές SQL όπως INSERT, UPDATE, SELECT και DELETE για φιλτράρισμα εγγραφών και εκτέλεση διαφόρων λειτουργιών στα δεδομένα.
Εξετάσαμε τον τρόπο αναζήτησης δεδομένων από α βάσεις δεδομένων χρησιμοποιώντας τη δήλωση SELECT στο προηγούμενο σεμινάριο. Η δήλωση SELECT επέστρεψε όλα τα αποτελέσματα από τον πίνακα της βάσης δεδομένων που ζητήθηκε.
Ωστόσο, είναι φορές που θέλουμε να περιορίσουμε τα αποτελέσματα του ερωτήματος σε μια καθορισμένη συνθήκη. Η ρήτρα WHERE στην SQL είναι χρήσιμη σε τέτοιες περιπτώσεις.

WHERE ρήτρα Σύνταξη
Η βασική σύνταξη για την πρόταση WHERE όταν χρησιμοποιείται στο α MySQL Η δήλωση SELECT WHERE είναι η εξής.
SELECT * FROM tableName WHERE condition;
ΕΔΩ
- "ΕΠΙΛΟΓΗ * ΑΠΟ Όνομα πίνακα" είναι το πρότυπο Δήλωση SELECT
- "ΟΠΟΥ" είναι η λέξη-κλειδί που περιορίζει το επιλεγμένο σύνολο αποτελεσμάτων ερωτημάτων και "κατάσταση" είναι το φίλτρο που θα εφαρμοστεί στα αποτελέσματα. Το φίλτρο μπορεί να είναι ένα εύρος, μεμονωμένη τιμή ή δευτερεύον ερώτημα.
Ας δούμε τώρα ένα πρακτικό παράδειγμα.
Ας υποθέσουμε ότι θέλουμε να λάβουμε τα προσωπικά στοιχεία ενός μέλους από τον πίνακα μελών με τον αριθμό μέλους 1, θα χρησιμοποιούσαμε το ακόλουθο σενάριο για να το πετύχουμε.
SELECT * FROM `members` WHERE `membership_number` = 1;
Εκτέλεση του παραπάνω σεναρίου στο MySQL πάγκος εργασίας στο "myflixdb" θα παράγει τα ακόλουθα αποτελέσματα.
membership_number | full_names | gender | date_of_birth | physical_address | postal_address | contct_number | |
---|---|---|---|---|---|---|---|
1 | Janet Jones | Female | 21-07-1980 | First Street Plot No 4 | Private Bag | 0759 253 542 | janetjones@yagoo.cm |
WHERE ρήτρα σε συνδυασμό με – ΚΑΙ ΛΟΓΙΚΟΣ OperaTor
Η συνθήκη WHERE σε MySQL όταν χρησιμοποιείται μαζί με τον λογικό τελεστή AND, εκτελείται μόνο εάν πληρούνται ΟΛΑ τα καθορισμένα κριτήρια φίλτρου.
SELECT * FROM `movies` WHERE `category_id` = 2 AND `year_released` = 2008;
movie_id | title | director | year_released | category_id |
---|---|---|---|---|
2 | Forgetting Sarah Marshal | Nicholas Stoller | 2008 | 2 |
WHERE ρήτρα σε συνδυασμό με – OR ΛΟΓΙΚΟΣ OperaTor
SELECT * FROM `movies` WHERE `category_id` = 1 OR `category_id` = 2;
movie_id | title | director | year_released | category_id |
---|---|---|---|---|
1 | Pirates of the Caribean 4 | Rob Marshall | 2011 | 1 |
2 | Forgetting Sarah Marshal | Nicholas Stoller | 2008 | 2 |
WHERE ρήτρα σε συνδυασμό με – IN Λέξη-κλειδί
SELECT * FROM `members` WHERE `membership_number` IN (1,2,3);
Εκτέλεση του παραπάνω σεναρίου στο MySQL Ο πάγκος εργασίας έναντι του "myflixdb" παράγει τα ακόλουθα αποτελέσματα.
membership_number | full_names | gender | date_of_birth | physical_address | postal_address | contct_number | |
---|---|---|---|---|---|---|---|
1 | Janet Jones | Female | 21-07-1980 | First Street Plot No 4 | Private Bag | 0759 253 542 | janetjones@yagoo.cm |
2 | Janet Smith Jones | Female | 23-06-1980 | Melrose 123 | NULL | NULL | jj@fstreet.com |
3 | Robert Phil | Male | 12-07-1989 | 3rd Street 34 | NULL | 12345 | rm@tstreet.com |
WHERE ρήτρα σε συνδυασμό με – ΟΧΙ ΜΕΣΑ Λέξη-κλειδί
SELECT * FROM `members` WHERE `membership_number` NOT IN (1,2,3);
Εκτέλεση του παραπάνω σεναρίου στο MySQL Ο πάγκος εργασίας έναντι του "myflixdb" παράγει τα ακόλουθα αποτελέσματα.
membership_number | full_names | gender | date_of_birth | physical_address | postal_address | contct_number | |
---|---|---|---|---|---|---|---|
4 | Gloria Williams | Female | 14-02-1984 | 2nd Street 23 | NULL | NULL | NULL |
WHERE ρήτρα σε συνδυασμό με – ΣΥΓΚΡΙΣΗ Operaκορμοί
= Ισο με
SELECT * FROM `members` WHERE `gender` = 'Female';
Εκτέλεση του παραπάνω σεναρίου στο MySQL Ο πάγκος εργασίας έναντι του "myflixdb" παράγει τα ακόλουθα αποτελέσματα.
membership_number | full_names | gender | date_of_birth | physical_address | postal_address | contct_number | |
---|---|---|---|---|---|---|---|
1 | Janet Jones | Female | 21-07-1980 | First Street Plot No 4 | Private Bag | 0759 253 542 | janetjones@yagoo.cm |
2 | Janet Smith Jones | Female | 23-06-1980 | Melrose 123 | NULL | NULL | jj@fstreet.com |
4 | Gloria Williams | Female | 14-02-1984 | 2nd Street 23 | NULL | NULL | NULL |
> Μεγαλύτερος από
payment_id | membership_number | payment_date | description | amount_paid | external_reference_number |
---|---|---|---|---|---|
1 | 1 | 23-07-2012 | Movie rental payment | 2500 | 11 |
3 | 3 | 30-07-2012 | Movie rental payment | 6000 | NULL |
< > Όχι ίσο με
SELECT * FROM `movies` WHERE `category_id`<> 1;
movie_id | title | director | year_released | category_id |
---|---|---|---|---|
2 | Forgetting Sarah Marshal | Nicholas Stoller | 2008 | 2 |
5 | Daddy's Little Girls | NULL | 2007 | 8 |
6 | Angels and Demons | NULL | 2007 | 6 |
7 | Davinci Code | NULL | 2007 | 6 |
9 | Honey mooners | John Schultz | 2005 | 8 |
Σύνοψη
- Ο όρος SQL WHERE χρησιμοποιείται για τον περιορισμό του αριθμού των σειρών που επηρεάζονται από ένα SELECT, UPDATE ή ΔΙΑΓΡΑΦΗ ερωτήματος.
- Η συνθήκη WHERE στην SQL μπορεί να χρησιμοποιηθεί σε συνδυασμό με λογικούς τελεστές όπως AND και OR, τελεστές σύγκρισης όπως ,= κ.λπ.
- Όταν χρησιμοποιείται με το AND λογικός τελεστής, πρέπει να πληρούνται όλα τα κριτήρια.
- Όταν χρησιμοποιείται με τον λογικό τελεστή OR, πρέπει να πληρούται οποιοδήποτε από τα κριτήρια.
- Η λέξη κλειδί IN χρησιμοποιείται για την επιλογή σειρών που ταιριάζουν με μια λίστα τιμών.
Σπαζοκεφαλιά
SELECT * FROM `movierentals` WHERE `return_date` < '2012-06-25' AND movie_returned = 0;
Εκτέλεση του παραπάνω σεναρίου στο MySQL Ο πάγκος εργασίας δίνει τα ακόλουθα αποτελέσματα.
reference_number | transaction_date | return_date | membership_number | movie_id | movie_returned |
---|---|---|---|---|---|
14 | 21-06-2012 | 24-06-2012 | 2 | 2 | 0 |