【发布时间】:2015-03-09 02:45:07
【问题描述】:
我需要对包含正数和负数的列运行多个查询,并返回所有大于选定值的行 < 或 >,但是当我使用“大于”时它没有返回预期结果' 运算符,如果所选值为负数。
请注意,当所选值为负数时,它应该返回正数和负数,并且似乎从结果中排除了负数。
SELECT T3.*
FROM Rules T3
WHERE T3.Width > '-.80';
T3.Width 中包含的值为:
0.90,(0.70),(0.70),(0.70),(0.70),(1.00),(1.00),(1.00),(1.00),(0.90),(0.55),(0.50)
因此结果应该是:
0.90,(0.70),(0.70),(0.70),(0.70),(0.55),(0.50)
但是返回的结果是:
0.90
【问题讨论】:
-
尝试将 SELECT 查询转换为 SIGNED:stackoverflow.com/questions/8537037/cast-decimal-to-int
-
Width列的数据类型是什么? -
@MichaelBerkowski - 数据类型是 VarChar(如果可能的话,我宁愿保留)
-
好的 - 我认为 () 是负值。 MySQL(我假设是 MySQL?)并没有那样对待它们——它们被当作字符串处理。如果您不介意使用
REPLACE()进行一些字符串操作,则可以处理。 -
@ChayaCooper 我明白了,昨天发表评论后我离开了我的电脑。你需要 CAST() 他们 - 我在下面充实了它。
标签: mysql negative-number comparison-operators