Προς το περιεχόμενο

Where σε mysql query


Προτεινόμενες αναρτήσεις

Δημοσ.

Λοιπόν, έχουμε έναν υποθετικό πίνακα με columns contenttypeid και extradata.
Θέλω να συντάξω μια WHERE στο MySQL query που τραβάει τον πίνακα, η οποία:
"Αν το contenttypeid είναι 17 ΚΑΙ το extradata 2, τότε να μην τα επιλέγει το query".

Να σημειωθεί ότι κάποια άλλα contenttypeid μπορεί να έχουν επίσης extradata = 2. Με μπερδεύει γιατί έχω να κάνω το αντίθετο από το να μην τα τράβαγα (πχ contenttypeid != 17 AND extradata != 2) και υπό συνθήκες ότι δεν παίρνει την ίδια τιμή extradata άλλο ctid.
Ευχαριστώ :-)

Δημοσ.

Δεν είναι σωστό. Αυτό που θέλεις είναι "WHERE ctid != 17 OR extradata != 2", δηλαδή: "να επιλεγεί το row εαν είτε το ctid δεν είναι 17, είτε το extradata δεν είναι 2". Αυτό θα αποκλείσει μόνο τα rows όπου όντως έχουμε 17 και 2, όπως θέλεις.

 

Γενικά θα σε βοηθήσει σε παρόμοιες περιπτώσεις να έχεις υπόψη τους νόμους του DeMorgan: θέλεις το "not (ctid = 17 and extradata = 2)", το οποίο γίνεται "(not ctid = 17) or (not extradata = 2)" κατά τον πρώτο νόμο.

Δημοσ.

Δεν είναι σωστό. Αυτό που θέλεις είναι "WHERE ctid != 17 OR extradata != 2", δηλαδή: "να επιλεγεί το row εαν είτε το ctid δεν είναι 17, είτε το extradata δεν είναι 2". Αυτό θα αποκλείσει μόνο τα rows όπου όντως έχουμε 17 και 2, όπως θέλεις.

 

Γενικά θα σε βοηθήσει σε παρόμοιες περιπτώσεις να έχεις υπόψη τους <a data-ipb="nomediaparse" data-cke-saved-href="http://en.wikipedia.org/wiki/De_Morgan" href="http://en.wikipedia.org/wiki/De_Morgan" s_laws"="">νόμους του DeMorgan: θέλεις το "not (ctid = 17 and extradata = 2)", το οποίο γίνεται "(not ctid = 17) or (not extradata = 2)" κατά τον πρώτο νόμο.

 

 

Δεν θα ήταν καλύτερα (πιο κατανοητό δλδ) κατα τον DeMorgan να το γραψει "not (ctid=17 AND extradata=2)";

Δημοσ.

Παιδιά δουλεύει μια χαρά το:

WHERE 

NOT (

contenttypeid = 17

AND

extradata = 2

)

 

ήταν πολύ εύκολο, απλά είχα κολλήσει στο να βάζω != και δεν ήξερα πως να εξαιρέσω ολόκληρη συνθήκη.

 

Ευχαριστώ πολύ!!

Δημοσ.

Δεν θα ήταν καλύτερα (πιο κατανοητό δλδ) κατα τον DeMorgan να το γραψει "not (ctid=17 AND extradata=2)";

 

Τι να σου πω, περι ορέξεως... εμένα μου φαίνονται πιο κατανοητές οι μορφές στις οποίες το NOT δεν πάει σε σύνθετες συνθήκες παρά μόνο σε απλές. Το βλέπω σαν πιο άμεσα αντιληπτό.

Δημοσ.

Τι να σου πω, περι ορέξεως... εμένα μου φαίνονται πιο κατανοητές οι μορφές στις οποίες το NOT δεν πάει σε σύνθετες συνθήκες παρά μόνο σε απλές. Το βλέπω σαν πιο άμεσα αντιληπτό.

και εμένα το ίδιο φίλε defacer, απλώς η περιγραφή του προβλήματος ήταν τέτοια που με έσπρωξε προς τα εκεί.

Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε

Πρέπει να είστε μέλος για να αφήσετε σχόλιο

Δημιουργία λογαριασμού

Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!

Δημιουργία νέου λογαριασμού

Σύνδεση

Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.

Συνδεθείτε τώρα
  • Δημιουργία νέου...