Php MySQL查询为大于where子句返回较小的值

Php MySQL查询为大于where子句返回较小的值,php,mysql,Php,Mysql,这是问题 从表中选择*,其中id='7883c2c8e6'和值>'45'描述 但出于某种原因,它返回一行,其中字段值的值为8。我已检查,它没有前面或后面的字符。该字段当前设置为varchar。我想知道这是否会影响结果 如果我将>的方向改为

这是问题

从表中选择*,其中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,修复。谢谢这很尴尬,没必要感到尴尬。我犯了很多次同样的错误,我都数不清了!