可以说我有这些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