montano 0 Denunciar post Postado Setembro 29, 2009 bom dia pessoal, Seguinte, estou querendo usar um campo boolean no meu BD, porem quando eu ponho BOOL ele muda para TINYINT :S. Quero poder ler esses campos como 'true' or 'false'. Alguem sabe porque ele muda? Compartilhar este post Link para o post Compartilhar em outros sites
Matias Rezende 50 Denunciar post Postado Setembro 29, 2009 Mysql? Carlos Eduardo Compartilhar este post Link para o post Compartilhar em outros sites
montano 0 Denunciar post Postado Setembro 29, 2009 Isso, desculpa nao dizer. MYSQL Compartilhar este post Link para o post Compartilhar em outros sites
Matias Rezende 50 Denunciar post Postado Setembro 29, 2009 Tópico Movido PHP http://forum.imasters.com.br/public/style_emoticons/default/seta.gif Mysql Compartilhar este post Link para o post Compartilhar em outros sites
Vergil 15 Denunciar post Postado Setembro 29, 2009 bom dia pessoal, Seguinte, estou querendo usar um campo boolean no meu BD, porem quando eu ponho BOOL ele muda para TINYINT :S. Quero poder ler esses campos como 'true' or 'false'. Alguem sabe porque ele muda? O MySQL transforma campos bool em tinyint. Dessa forma, quando salvar um valor lógico (boolean) no banco ele automaticamente será convertido para um valor inteiro 0 (para false) ou 1 (para true). Entretanto, você pode fazer consultas utilizando operador false ou true. tabela usuario nome varchar senha varchar ativo bool select * from usuario where ativo = true select * from usuario where ativo = 1 insert into usuario(nome, senha, ativo) values('nome', 'senha', true) insert into usuario(nome, senha, ativo) values('nome', 'senha', 1) Compartilhar este post Link para o post Compartilhar em outros sites
montano 0 Denunciar post Postado Setembro 29, 2009 minha preocupação é que o tinyint aceita numeros diferentes de 0 e 1 tambem. Compartilhar este post Link para o post Compartilhar em outros sites
Vergil 15 Denunciar post Postado Setembro 29, 2009 minha preocupação é que o tinyint aceita numeros diferentes de 0 e 1 tambem. De acordo com a documentação do MySQL (http://dev.mysql.com/doc/refman/5.0/en/numeric-type-overview.html) o tipo BOOL é um alias para TINYINT(1). Ou seja, pode ser um número inteiro que vai de -128 a 127. Para valores 0 o MySQL entende como falso e valores não-zero o MySQL entende como verdadeiro. Uma outra alternativa seria o uso de tipo enum. Onde você definiria um campo ENUM('TRUE', 'FALSE') ou ENUM('0', '1'). Dessa forma o campo só aceitaria valores 'true' ou 'false'. Lembrando-se de que o campo ENUM trata seus valores como String. Compartilhar este post Link para o post Compartilhar em outros sites
Lucas Renan 2 Denunciar post Postado Outubro 4, 2009 você pode utilizar ENUM('F', 'T'); Compartilhar este post Link para o post Compartilhar em outros sites