表格
user(varchar40) credit(varchar40)
u1 400
u2 500
u3 600
u4 650and查询
$sql=mysql_query("SELECT `user` FROM `tbl` WHERE `credit` < '8'");
for($i=0;$i<mysql_num_rows($sql);$i++)
{
echo mysql_result($sql,$i,0);
}和结果u1
u2
u3
u4
因为credit是varchar only first number比较并返回所有用户
我如何做正确的比较而不改变表格?
发布于 2013-05-11 22:05:39
首先,为什么要将数字存储为字符串?无论如何,您可以使用CAST()将值转换为数字
SELECT `user` FROM `tbl` WHERE CAST(`credit` AS SIGNED) < 8如果我是你,你应该将它修复为正确的数据类型,以避免总是为了比较而强制转换列。为此,修改该表并添加额外的列,即INTEGER列。通过将列credit转换为新添加的列并删除列credit来删除表。
https://stackoverflow.com/questions/16497878
复制相似问题