Πως θα τραβήξω μόνο τα not null δεδομένα

Συζητήσεις για την βάση δεδομένων MySQL και το phpMyAdmin

Συντονιστές: WebDev Moderators, Super-Moderators

Απάντηση
edessakis
Δημοσιεύσεις: 8
Εγγραφή: 01 Φεβ 2008 12:33

Πως θα τραβήξω μόνο τα not null δεδομένα

Δημοσίευση από edessakis » 25 Σεπ 2010 23:00

Παιδιά γεια χαρά.
Χρειάζομαι βοήθεια στο εξής query:
Θέλω να τραβήξω από ένα συγκεκριμένο recordset (που προσδιορίζεται από ένα foreign key) όλες τις στήλες - και μόνον αυτές - που δεν είναι null.

Ευχαριστώ εκ των προτέρων

nbc
Honorary Member
Δημοσιεύσεις: 526
Εγγραφή: 05 Σεπ 2009 20:12
Επικοινωνία:

Πως θα τραβήξω μόνο τα not null δεδομένα

Δημοσίευση από nbc » 26 Σεπ 2010 14:13

WHERE column IS NOT NULL

edessakis
Δημοσιεύσεις: 8
Εγγραφή: 01 Φεβ 2008 12:33

Πως θα τραβήξω μόνο τα not null δεδομένα

Δημοσίευση από edessakis » 27 Σεπ 2010 13:29

Δεν ήμουν σαφής στην περιγραφή μου.
Υπάρχει ο πίνακας με αρκετές στήλες, κάποιες εκ των οποίων (περισσότερες από μία)
μπορεί να είναι NULL.
Είναι πιθανό κάθε γραμμή να έχει διαφορετικές NULL στήλες.
Εγώ τράβάω μέσω foreign key κάποια συγκεκριμένη γραμμή (διαφορετική κάθε φορά).
Ρωτάω λοιπόν: υπάρχει κάποια γενική σύνταξη ωστε να μπορώ να προβάλω κάθε φορά
μόνο τις στήλες που δεν είναι NULL?

Άβαταρ μέλους
dva_dev
Script Master
Δημοσιεύσεις: 3790
Εγγραφή: 16 Σεπ 2005 01:32
Επικοινωνία:

Πως θα τραβήξω μόνο τα not null δεδομένα

Δημοσίευση από dva_dev » 27 Σεπ 2010 14:27

To query πάντα θα σου φέρνει όλες τις στήλες που έχεις δηλώσει (ότι κι αν περιέχουν). Οι εγγραφές που θα σου έρθουν, αν περιλαμβάνουν και nulls στα αντίστοιχα πεδία ή όχι, το περιορίζεις όπως έχει πει ο nbc.
Από τις εγγραφές που θα έχεις, ποιές στήλες θα εμφανίζεις και και ποιές όχι, μπορείς να το ελέγξεις με κώδικα (μερικά if στη σειρά ή σε loop).

Αν θέλεις κάτι άλλο μάλλον θα δώσεις και κάποιο παράδειγμα για να καταλάβουμε.

edessakis
Δημοσιεύσεις: 8
Εγγραφή: 01 Φεβ 2008 12:33

Πως θα τραβήξω μόνο τα not null δεδομένα

Δημοσίευση από edessakis » 28 Σεπ 2010 00:02

Άρα άν κατάλαβα καλά η καλύτερη λύση είναι το "ξεκαθάρισμα" να γίνει στη γλώσσα η οποία χρησιμοποιεί τα mysql_query (php στη δική μου περίπτωση).
Αν πχ το num_rows της κάθε στήλης > 0 τότε echo τις στήλες αυτές.
Σωστά κατάλαβα;

Άβαταρ μέλους
dva_dev
Script Master
Δημοσιεύσεις: 3790
Εγγραφή: 16 Σεπ 2005 01:32
Επικοινωνία:

Πως θα τραβήξω μόνο τα not null δεδομένα

Δημοσίευση από dva_dev » 28 Σεπ 2010 00:20

Αν θέλεις να φέρεις τις εγγραφές με τις X (π.χ. 5 συγκεκριμένες) στήλες και καμία από τις στήλες αυτές να μην έχει nulls, αυτό μπορεί να γίνει και από το query.

Απλώς κάνεις κάτι τέτοιο:

Κώδικας: Επιλογή όλων

select col1, col2, col3, col4, col5 from table
where col1 is not null and col2 is not null and col3 is not null 
and col4 is not null and col5 is not null;
Αν θέλεις τις εγγραφές με τις Χ στήλες που έστω και μία να μην έχει null, κάτι τέτοιο:

Κώδικας: Επιλογή όλων

select col1, col2, col3, col4, col5 from table
where col1 is not null or col2 is not null or col3 is not null 
or col4 is not null or col5 is not null;
Το num_rows πάνω στις στήλες πως ακριβώς σκέφτεσαι να το κάνεις; Απ' όσο ξέρω παίζει πάνω σε recordsets (δες το σαν πίνακες), όχι σε στήλες (πεδία του πίνακα).

Απάντηση

Επιστροφή στο “MySQL”

Μέλη σε σύνδεση

Μέλη σε αυτήν τη Δ. Συζήτηση: Δεν υπάρχουν εγγεγραμμένα μέλη και 1 επισκέπτης