2011-02-14 89 views
0

我有一個非常簡單的問題。我有一個SQL查詢,看起來像這樣:MySQL SQL查詢0或1

CREATE TABLE `users` (
    [...] 
    `ABC` BIT() 
    [...] 
) 

我想ABC是要麼01我只是想知道,這是做了正確的方法是什麼?

回答

2

Bit有一些oddities隨着它在新版本的MySQL中。我建議使用booltinyint(1)

+0

那麼ABC'TINYINT(1)`會起作用嗎? – 0x60 2011-02-14 02:11:42

+0

是的,它會工作。 – ash 2011-02-14 02:17:42

3

()

CREATE TABLE `users` (
    [...] 
    `ABC` BIT, 
    [...] 
) 

大多數人一樣,我一般挑TINYINT(1)超過BIT,但我認爲這是好的。

與MySQL的問題是,它不具有真正的布爾數據類型,也不TINYINT也不BIT可以表示保持恰好兩個的01NULL值的列(它們具有不同的值範圍) 。唯一的辦法就是用一個非常小的數字列來模擬它,並且祈禱沒有人偷偷摸摸地以非零或者一個數值偷偷摸摸......