可以說我有這些DB行PHP MYSQL比較行WHERE語句
id | storage | used | status
1 - 100 - 0 - 1
2 - 1000 - 5000 - 1
我需要對行的「存儲」和「使用」
我要選擇行比較WHERE狀態= 1和列「存儲」>列「使用」。
我試圖WHERE狀態= '1' 和存儲>使用
應該報到行ID#1,但它不。
可以說我有這些DB行PHP MYSQL比較行WHERE語句
id | storage | used | status
1 - 100 - 0 - 1
2 - 1000 - 5000 - 1
我需要對行的「存儲」和「使用」
我要選擇行比較WHERE狀態= 1和列「存儲」>列「使用」。
我試圖WHERE狀態= '1' 和存儲>使用
應該報到行ID#1,但它不。
那麼,WHERE status=1 AND storage > used
是正確的。如果您嘗試過,並且沒有回到id=1
的行,那麼您的數據有問題。
是storage
和used
數字列?或者它們被存儲爲VARCHAR
(或者,gasp,TEXT
)?如果是這樣,你將無法按照你想要的方式比較它們,並且首先必須將它們轉換或轉換爲數字類型。最好將類型改爲實際數字(即INT
或DECIMAL
或其他適當的類型)。
SELECT * FROM `table` WHERE status = '1' AND storage > used
應該給你正確的解決方案,像VoteyDisciple提到,確保status
和used
都是數字式的。
你可以使用SELECT * FROM
表WHERE status = '1' AND storage > used
但是存儲和使用的數據類型必須是NUMERIC而不是VARCHAR。
如果你仍然沒有得到正確答案,那麼它應該是你的數據存儲結構的問題。
謝謝!
它目前的int,仍然不能正確回報:( – jiexi 2010-11-20 03:17:57
nvm我知道我失敗的地方...忘了取數組。lol k謝謝:) – jiexi 2010-11-20 03:23:20