ερώτηση της ημέρας, υπάρχει τρόπος με select να εμφανίσω το length του κάθε row?

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

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

Απάντηση
sibas
Honorary Member
Δημοσιεύσεις: 1853
Εγγραφή: 21 Φεβ 2003 01:21
Τοποθεσία: Μια εδώ.. Μια εκεί.. Σήμερα είμαι εδώ!!!
Επικοινωνία:

ερώτηση της ημέρας, υπάρχει τρόπος με select να εμφανίσω το length του κάθε row?

Δημοσίευση από sibas » 03 Αύγ 2016 11:54

Γεια χαρά,

υπάρχει τρόπος με select να εμφανίσω το length του κάθε row?
πχ

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

CREATE TABLE example(
	id int NOT NULL AUTO_INCREMENT,
	row1 varchar(50) default NULL,
	row2 varchar(100) default NULL,
	row3 char(10) default NULL,
	write text default NULL,
	data TINYINT(1) NOT NULL DEFAULT '0',
	datein datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
	PRIMARY KEY (id)
)ENGINE=InnoDB;
έστω ότι εκτελώ

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

select * from example
και έχει τα εξής
id = 500
row1 = bla
row2 = blabla
row3 =
write = lorem ypsum klp klp lorem
data = 0
datein = 2016-08-03 10:36:22
μπορώ να βρω τις τιμές (length) όλων των rows?
Οχι αυτά που έχουν καταχωρηθεί
πχ row1 = bla έχει length 3
αυτό που θέλω είναι να μπορέσω να βρω το length 50 για το row1,
δηλαδη
row1 varchar(50) <- αυτή την τιμή
row2 varchar(100)<- αυτή την τιμή
row3 char(10)<- αυτή την τιμή
data TINYINT(1)<- αυτή την τιμή

υπάρχει τρόπος???

alou
Script Master
Δημοσιεύσεις: 1374
Εγγραφή: 24 Αύγ 2007 19:52
Επικοινωνία:

ερώτηση της ημέρας, υπάρχει τρόπος με select να εμφανίσω το length του κάθε row?

Δημοσίευση από alou » 03 Αύγ 2016 13:05

Η πληροφορία που θες είναι στο information schema. Μπορείς να πάρεις ένα ένα τα columns έτσι

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

SELECT `CHARACTER_MAXIMUM_LENGTH` FROM INFORMATION_SCHEMA.COLUMNS 
  WHERE table_name = 'table_name' AND COLUMN_NAME = 'col_name';
ή να παίξεις με

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

SELECT * FROM INFORMATION_SCHEMA.COLUMNS 
  WHERE table_name = 'table_name';
και να προσαρμόσεις το query και τα δεδομένα που θα χρειαστείς.

sibas
Honorary Member
Δημοσιεύσεις: 1853
Εγγραφή: 21 Φεβ 2003 01:21
Τοποθεσία: Μια εδώ.. Μια εκεί.. Σήμερα είμαι εδώ!!!
Επικοινωνία:

ερώτηση της ημέρας, υπάρχει τρόπος με select να εμφανίσω το length του κάθε row?

Δημοσίευση από sibas » 03 Αύγ 2016 15:33

μάλιστα!!!
δηλαδή θέλω τουλάχιστον 2 queries ή join?
υπάρχει κάποια ιδέα για το θέμα performance σε κάτι τέτοιο?

gvre
Δημοσιεύσεις: 990
Εγγραφή: 14 Οκτ 2010 11:34
Τοποθεσία: Ηράκλειο Κρήτης
Επικοινωνία:

ερώτηση της ημέρας, υπάρχει τρόπος με select να εμφανίσω το length του κάθε row?

Δημοσίευση από gvre » 03 Αύγ 2016 15:46

Άσχετο, αλλά πού θέλεις να το χρησιμοποιήσεις;

sibas
Honorary Member
Δημοσιεύσεις: 1853
Εγγραφή: 21 Φεβ 2003 01:21
Τοποθεσία: Μια εδώ.. Μια εκεί.. Σήμερα είμαι εδώ!!!
Επικοινωνία:

ερώτηση της ημέρας, υπάρχει τρόπος με select να εμφανίσω το length του κάθε row?

Δημοσίευση από sibas » 03 Αύγ 2016 16:13

well, έχω αρκετές μικρές/μεγάλες φόρμες, και σε κάθε μια γράφω manual σε κάθε input, maxlength, strlen, και αρκετά άλλα.. για το θέμα ασφάλειας/ελέγχου κλπ

σκέφτηκα ότι εφόσον οι περισσότερες τιμές/ονόματα προέρχονται από την db αν τυχών μπορούσα να πάρω τις τιμές που ανέφερα τότε δεν θα χρειαζονταν να τις περνάω manual, αυτομάτως θα πέρναγα τις τιμές στα κατάλληλα πεδία :roll:

gvre
Δημοσιεύσεις: 990
Εγγραφή: 14 Οκτ 2010 11:34
Τοποθεσία: Ηράκλειο Κρήτης
Επικοινωνία:

ερώτηση της ημέρας, υπάρχει τρόπος με select να εμφανίσω το length του κάθε row?

Δημοσίευση από gvre » 03 Αύγ 2016 16:27

Έτσι κι αλλιώς, θα κάνεις ελέγχους στο server side, οπότε καλύτερα να φτιάξεις τις φόρμες με το χέρι και το validation στον server. Για καλύτερο UX, μπορείς να κάνεις και client side validation.

Απάντηση

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

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

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