Php MySQL查询为大于where子句返回较小的值
这是问题 从表中选择*,其中id='7883c2c8e6'和值>'45'描述 但出于某种原因,它返回一行,其中字段值的值为8。我已检查,它没有前面或后面的字符。该字段当前设置为varchar。我想知道这是否会影响结果Php MySQL查询为大于where子句返回较小的值,php,mysql,Php,Mysql,这是问题 从表中选择*,其中id='7883c2c8e6'和值>'45'描述 但出于某种原因,它返回一行,其中字段值的值为8。我已检查,它没有前面或后面的字符。该字段当前设置为varchar。我想知道这是否会影响结果 如果我将>的方向改为
如果我将>的方向改为<这一行不会显示,但肯定应该是相反的方向?因为“8”大于“45”(按字母顺序排列) 将值设置为int:
AND convert( value, unsigned) > 45
因为“8”大于“45”(按字母顺序排列) 将值设置为int:
AND convert( value, unsigned) > 45
该字段当前设置为varchar
这就是问题所在;如果在文本字段上使用比较运算符,它将按字母顺序而不是数字顺序对结果进行排序
要绕过它,请将该字段改为整数。
该字段当前设置为varchar
这就是问题所在;如果在文本字段上使用比较运算符,它将按字母顺序而不是数字顺序对结果进行排序
若要绕过它,请将字段改为整数。如果要按值排序,请将
值
设为数字列,可以是INT
或FLOAT
或DECIMAL
。现在它是一个CHAR
(我假设)和如果您想按值排序,请将value
设为一个数字列,可以是INT
或FLOAT
或DECIMAL
。现在它是一个CHAR
(我假设),并且转换(value,int)
将失败<代码>转换(值,无符号)
将不会。另外,那里不允许使用DESC
。@RossSmithII,修复。谢谢这很尴尬,没必要感到尴尬。我犯了很多次同样的错误,我都数不清了<代码>转换(值,int)
将失败<代码>转换(值,无符号)将不会。另外,那里不允许使用DESC
。@RossSmithII,修复。谢谢这很尴尬,没必要感到尴尬。我犯了很多次同样的错误,我都数不清了!