2011-10-25 117 views
1

與選擇複選框的ajax查詢從mysql返回的值有問題。但是我可以使用它的唯一方法是使用mysql中的值作爲NULL。但0或1會每次返回它檢查。在MySQL中,我把它設置爲tinyint(1)。使用位什麼是mysql的最佳布爾值?

+0

看起來這是比較好的數據類型 – Icarus

+1

您的代碼中可能存在一個錯誤。如果您發佈代碼,它可能會有所幫助。 –

+0

我不認爲你的問題是在這裏選擇數據類型。你需要發佈你的查詢和你正在做的與數據相關的事情。但是,爲了回答你的問題,tinyint(1)可能比enum更簡潔。這種情況取決於你真正在做什麼。我使用枚舉的可讀性,因爲我傾向於在較小的加載站點上工作。我的同事喜歡tinyint(1),因爲它的數據較小並且便攜。如果網站很小,而且沒有大量的流量,那麼它就不會放慢速度來使用枚舉。你的選擇。 –

回答

3

在MySQL中boolean是tinyint(1)的別名。我建議使用boolean
由於某種原因,MySQL編寫者會執行某些操作。我相信他們有充分的理由選擇tinyint而不是bit

您永遠不會得到比1個字節更小的存儲需求。

確保你做對1

if $row['bool_field'] == 1 {check that box} 
else {uncheck that box} 
0

我想你想一個Boolean value這裏 - 這就是他們設計的畢竟。無論哪種方式,它肯定應該定義爲NOT NULL;大多數布爾邏輯情況會有不需要的邊緣情況,除非你這樣做(除了Ternary logic!)。

冒着猜測,也許您的視圖代碼來填充複選框檢查是否存在一個鍵而不是該值爲False(或0),或者數據庫查詢正在對此情況進行不正確的連接。很難說沒有更多的細節。

+0

我發佈了一個鏈接,指出我遇到的實際問題。它是#7881998。我確實得到適當的值回來,即:0或1.但他們標記複選框與檢查無論它使用0或1作爲真值,只有當然後mysql字段如果_NULL_它不會選中該框。 – Mont

0

使用布爾檢查。使用bit(1)是錯誤的方法。

你可以read here,指定爲bit(1)場也可以,即11111111,這麼多的數據則boolean/tinyint場可以處理。

相關問題