Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 15

Discussione: [Mysql] Vero o falso

  1. #1

    [Mysql] Vero o falso

    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)

  2. #2
    Utente di HTML.it
    Registrato dal
    Jan 2003
    Messaggi
    320
    Forse non ho capito la domanda, xò puoi usare un campo di tipo

    enum('0','1')

  3. #3
    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

  4. #4
    Utente di HTML.it L'avatar di kuarl
    Registrato dal
    Oct 2001
    Messaggi
    1,093

    Re: [Mysql] Vero o falso

    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?
    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)

  5. #5
    `vero_falso` char(1) binary NOT NULL default ''
    Bit Manent, Scripta Volant.
    www.bitmanent.com

  6. #6
    Utente di HTML.it L'avatar di luca200
    Registrato dal
    Apr 2002
    Messaggi
    4,120
    Il modo più economico sarebbe usare un CHAR(0), che può valere NULL o stringa vuota.

  7. #7
    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)

  8. #8
    Utente di HTML.it
    Registrato dal
    Apr 2003
    Messaggi
    534
    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!
    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.

    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:


  9. #9
    anche io uso un

    enum('True', 'False')

  10. #10
    Utente di HTML.it
    Registrato dal
    Apr 2003
    Messaggi
    534
    Originariamente inviato da saturno82
    anche io uso un

    enum('True', 'False')
    Preferisco TINYINT(1) 0/1.

    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.


Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.