我有一个非常简单的问题。我有一个SQL查询,如下所示:
CREATE TABLE `users` (
[...]
`ABC` BIT()
[...]
)
我希望ABC
成为0
或1
我只是想知道,这是正确的做法吗?
答案 0 :(得分:3)
放弃()
:
CREATE TABLE `users` (
[...]
`ABC` BIT,
[...]
)
与大多数人一样,我通常选择TINYINT(1)
而不是BIT
,但我认为这很好。
MySQL的问题在于它没有真正的布尔数据类型,TINYINT
和BIT
都不能代表一个只包含两个非NULL
值的列。 0
和1
(它们具有不同的值范围)。唯一的方法是使用一个非常小的数字列模拟它,并祈祷没有人偷偷摸摸非零或一个值......
答案 1 :(得分:2)
Bit
在新版本的MySQL中有一些oddities。我建议使用bool
或tinyint(1)
。