Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
这是查询
从表中选择 *,其中 id = '7883c2c8e6' AND value > '45' DESC
但由于某种原因,它返回了字段值为 8 的行。我已经检查过,它没有前面或后面的字符。该字段当前设置为 varchar。我想知道这是否会影响结果?
如果我将 > 的方向更改为 < 这行不会显示,但肯定应该是相反的吗?
因为“8”大于“45”(按字母顺序)。
将您的值转换为 int:
AND convert( value, unsigned) > 45
The field is currently set as varchar
这就是问题所在;如果您在文本字段上使用比较运算符,它将按字母顺序而不是数字顺序对结果进行排序。
要绕过它,请将字段设置为整数。
SELECT * FROM TABLE WHERE id = '7883c2c8e6' AND (value * 1) > 45 order by value DESC