Non esiste un campo che è vero o falso, cioè 0 o 1?
Se esiste come si chiama e come si cambia il valore in esso?
Non esiste un campo che è vero o falso, cioè 0 o 1?
Se esiste come si chiama e come si cambia il valore in esso?
“Due cose sono infinite: l'universo e la stupidità umana, ma riguardo l'universo ho ancora dei dubbi! (A.Einstein)”
Forse non ho capito la domanda, xò puoi usare un campo di tipo
enum('0','1')
se usi un campo di tipo enum hai 65.535 caratteri come lunghezza massima.
prova a usare tinyint che ha al massimo 255, ma qualcosa che sia o 0 o 1, false\true non lo conosco.
io cmq in questi casi uso un normale varchar dove ci scrivo o 0 o 1![]()
in mysql non esiste un tipo di dato booleano, xò a partire da mysql 4.1 (non ancora stabile) è stato aggiunto un alias per il tipo numerico TINYINT(1), viene considerato falso un valore uguale a 0, vero un valore diverso da 0. Sul manuale online è scritto che il pieno supporto ai valori booleani verrà dato in seguito in accordo con le specifiche dell'sql standard, probabilmente in mysql5, che è ancora molto lontano (io credo non meno di un paio d'anni)Originariamente inviato da Sora88
Non esiste un campo che è vero o falso, cioè 0 o 1?
Se esiste come si chiama e come si cambia il valore in esso?
`vero_falso` char(1) binary NOT NULL default ''
Bit Manent, Scripta Volant.
www.bitmanent.com
Il modo più economico sarebbe usare un CHAR(0), che può valere NULL o stringa vuota.
usero un tinyint... era per risparmiare spazio, dato che metto o 0 o 1... gli altri 255 rimaraano li a fare la muffa!
“Due cose sono infinite: l'universo e la stupidità umana, ma riguardo l'universo ho ancora dei dubbi! (A.Einstein)”
Non lasci nulla a far la muffa. 1 byte numerico rappresenta da 0 a 255. Il fatto che rappresenti 1 = 00000001 oppure 255 = 11111111 occupa esattamente lo stesso spazio cioè un byte.Originariamente inviato da Sora88
usero un tinyint... era per risparmiare spazio, dato che metto o 0 o 1... gli altri 255 rimaraano li a fare la muffa!
Anche char(0) se è presente un campo tipo varchar nella tabella, viene trasformato in varchar occupando così un byte pure lui.
Mi pare proprio che 1 byte sia l'unità di misura minima per un dato. :rollo:
![]()
Preferisco TINYINT(1) 0/1.Originariamente inviato da saturno82
anche io uso un
enum('True', 'False')
enum tratta i dati immessi come stringhe ed accetta solo i valori dichiarati. Se si immette un valore non in elenco si ottiene un record vuoto che in mysql corrisponde a TRUE. Argutamente Luca200 suggerisce CHAR(0) NULL proprio perchè si basa su NULL = FALSE e vuoto "" = TRUE.
![]()