2010-11-20 135 views
0

可以说我有这些DB行PHP MYSQL比较行WHERE语句

id | storage | used | status 
1 - 100 - 0 - 1 
2 - 1000 - 5000 - 1 

我需要对行的“存储”和“使用”

我要选择行比较WHERE状态= 1和列“存储”>列“使用”。

我试图WHERE状态= '1' 和存储>使用

应该报到行ID#1,但它不。

回答

0

那么,WHERE status=1 AND storage > used是正确的。如果您尝试过,并且没有回到id=1的行,那么您的数据有问题。

storageused数字列?或者它们被存储为VARCHAR(或者,gasp,TEXT)?如果是这样,你将无法按照你想要的方式比较它们,并且首先必须将它们转换或转换为数字类型。最好将类型改为实际数字(即INTDECIMAL或其他适当的类型)。

+0

它目前的int,仍然不能正确回报:( – jiexi 2010-11-20 03:17:57

+0

nvm我知道我失败的地方...忘了取数组。lol k谢谢:) – jiexi 2010-11-20 03:23:20

0
SELECT * FROM `table` WHERE status = '1' AND storage > used 

应该给你正确的解决方案,像VoteyDisciple提到,确保statusused都是数字式的。

0

你可以使用SELECT * FROMWHERE status = '1' AND storage > used但是存储和使用的数据类型必须是NUMERIC而不是VARCHAR。

如果你仍然没有得到正确答案,那么它应该是你的数据存储结构的问题。

谢谢!