我正在查询我的数据库,从最高到最低返回一组结果。但是,查询似乎并没有完全按照这种方式对结果进行排序。我的代码如下:
$query = mysql_query("SELECT * FROM ".$stats_table." ORDER BY ppg DESC")or die(mysql_error());
$count = mysql_num_rows($query);
$i = 0;
while($row = mysql_fetch_assoc($query))
{
$team[$i] = $row['team'];
$ppg[$i] = $row['ppg'];
$i++;
}
for($i=0;$i<$count;$i++)
{
echo "".$ppg[$i]." <br /><br />";
}当我回显ppg列集时,我得到以下内容:
99.7
98.2
97.8
97.4
97.1
96.9
96.8
96.3
96.2
95.5
94.6
94.5
94.3
93.9
93.2
92.8
92.2
91.5
90.8
90.3
106.0
105.9
104.5
103.6
102.6
101.9
101.5
101.3
100.7
100.1 似乎对于所有小于100和大于100的值,它都是有效的。但是,如何才能使此顺序适用于所有值,而不仅仅是小于或大于100的值?
谢谢,
兰斯
发布于 2012-12-18 16:21:11
将ppg设置为双精度、实数或任何数值,而不是varchar。
发布于 2012-12-18 16:24:22
将数据类型更改为数字,如double、real、float。试试看。
发布于 2012-12-18 16:23:53
如果不想接触结构,请使用ORDER BY ABS(ppg)
https://stackoverflow.com/questions/13928853
复制相似问题