Με λίγα λόγια, για δύο τιμές Boolean, ο τελεστής XOR επιστρέφει true εάν είναι διαφορετικές. Είναι τόσο απλό.
- true XOR false επιστρέφει true
- false XOR false επιστρέφει false
- true XOR true επιστρέφει false
Ας διερευνήσουμε τι κάνει ο τελεστής XOR στην SQL και πώς μπορούμε να τον χρησιμοποιήσουμε. Για λόγους επίδειξης, χρησιμοποιούμε τη MySQL ως το βασικό σύστημα βάσης δεδομένων.
SQL XOR Operator
Στην SQL, ο τελεστής XOR μας επιτρέπει να εκτελούμε τις λογικές λειτουργίες XOR μεταξύ δύο παραστάσεων Boolean.
Όπως κάθε λειτουργία XOR, ο τελεστής επιστρέφει ένα Boolean true εάν ακριβώς μία από τις εκφράσεις είναι true και επιστρέφει ένα Boolean false διαφορετικά.
Η MySQL υποστηρίζει τον τελεστή XOR που μας επιτρέπει να γράψουμε τις σύνθετες εντολές υπό όρους με βάση αυτή τη λογική.
Η βασική σύνταξη είναι η εξής:
έκφραση1 Έκφραση XOR2Ας εξερευνήσουμε ορισμένες βασικές χρήσεις αυτής της λειτουργικότητας.
Βασική χρήση
Εξετάστε το ακόλουθο παράδειγμα που δείχνει πώς συμπεριφέρεται ο τελεστής XOR στη MySQL κατά την αξιολόγηση δύο παραστάσεων Boolean:
επιλέξτε 1 xor 1 ως res?Σε αυτήν την περίπτωση, η MySQL αντιμετωπίζει το 1 ως αληθές και το 0 ως ψευδές. Επομένως, εφόσον και οι δύο εκφράσεις είναι αληθείς, ο τελεστής επιστρέφει false ως εξής:
res|---+
0|
Η λειτουργικότητα του τελεστή διατηρείται όταν μία από τις εκφράσεις ή τους τελεστές είναι αληθής. Ένα παράδειγμα είναι το εξής:
επιλέξτε 1 xor 0 ως res.Σε αυτήν την περίπτωση, καθώς μόνο μία ακριβώς τιμή είναι αληθής, ο τελεστής επιστρέφει true ως εξής:
res|---+
1|
Προηγμένη χρήση
Ας δούμε ένα πιο προηγμένο παράδειγμα χρήσης του τελεστή XOR χρησιμοποιώντας έναν πίνακα βάσης δεδομένων. Για αυτό, χρησιμοποιούμε τον πίνακα 'πελάτης' από τη δειγματοληπτική βάση δεδομένων Sakila.
Ας υποθέσουμε ότι θέλουμε να ανακτήσουμε μια λίστα πελατών που είναι είτε ενεργά είτε ανενεργά μέλη αλλά όχι και τα δύο από τον πίνακα πελατών.
Σε αυτήν την περίπτωση, η ενεργή κατάσταση αντιπροσωπεύεται από 1 και η μη ενεργή κατάσταση αντιπροσωπεύεται από την τιμή 0.
Μπορούμε να το χρησιμοποιήσουμε σε συνδυασμό με τον χειριστή XOR για να το πετύχουμε. Εξετάστε το ακόλουθο παράδειγμα ερωτήματος:
SELECT customer_id, first_name, email, activeΑΠΟ Πελάτη
WHERE (ενεργό XOR ΜΗ ενεργό) = 1 όριο 3;
Αυτό θα πρέπει να επιστρέψει τις αντίστοιχες εγγραφές ως εξής:
Ορίστε το!
συμπέρασμα
Σε αυτό το σεμινάριο, μάθαμε πώς να εργαζόμαστε και να χρησιμοποιούμε τον τελεστή XOR στην SQL καλύπτοντας τις διάφορες λειτουργίες και τη χρήση. Εξετάσαμε επίσης πώς μπορούμε να το χρησιμοποιήσουμε σε έναν πίνακα βάσης δεδομένων για να φιλτράρουμε συγκεκριμένες εγγραφές.