表
user(varchar40) credit(varchar40)
u1 400
u2 500
u3 600
u4 650
和查询
$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
因为信用是varchar只有第一个数字比较并返回所有用户
我如何正确比较没有更改表???
答案 0 :(得分:2)
首先,为什么将数字存储为字符串?无论如何,您可以使用CAST()
SELECT `user` FROM `tbl` WHERE CAST(`credit` AS SIGNED) < 8
如果我是你,你应该修正它以纠正数据类型,以避免将列专门用于比较。要执行此操作,请更改表并添加额外的列INTEGER
列。通过将列UPDATE
投射到新添加的列并删除列credit
,credit
表格。