存储0,1,空值的最佳数据类型

sta*_*ack 10 php mysql

我有三个值:0,1,NULL.现在我想知道,该列可以使用哪种数据类型?

但是方式,NULL是该列的默认值(在数据库中)和我实现01形成URL的参数(get方法).像这样的东西:

www.example.com/?q=param=0
Run Code Online (Sandbox Code Playgroud)

然后

$var = isset($_GET['param']) ? $_GET['param'] : null;
Run Code Online (Sandbox Code Playgroud)

然后

INSERT INTO table(col) values ($var);
Run Code Online (Sandbox Code Playgroud)

Pau*_*gel 13

我会使用比特值类型 - BIT

bool_val TINYINT UNSIGNED CHECK(bool_val <= 1)
Run Code Online (Sandbox Code Playgroud)

BIT(1)需要1个存储空间,与之相同TINYINT(1).区别在于BIT(1)只接受值01(或b'0'b'1'),同时TINYINT(1) UNSIGNED接受0最多值255.括号中定义的长度TINYINT不会对可以存储的值产生任何影响.它只是客户的信息,如何显示值(例如,如果您使用ZEROFILL).


joe*_*135 9

__PRE__

tinyint非常适合布尔人