我试图按距离排序,但我的距离和输出如下:
2m4f
2m5.5f
2m5f
2m6f
2m7f
3m
正如你所看到的,2米5.5英尺在2米5英尺之前
在那里,通过它,我可以使它的任何值。5f将在“2.5f”之后,如下所示
2m4f
2m5f
2m5.5f
2m6f
2m7f
3m
我的代码是:
$sqlhorses = "SELECT distance,Place,Runners FROM `horsesrp`
WHERE
`Horse` = '".$horse."' order by distance";
注意:距离存储为Varchar(50)
最佳答案
正如注释和其他答案中提到的,问题是您是按字符串排序的。在MySQL和字符串中,可以使用以下方法解决此问题:
order by distance + 0,
substring_index(distance, 'm', -1) + 0
+ 0
在MySQL中执行静默转换。它将前导数字转换为数字,这是您需要的排序目的。关于php - 在SQL中排序不是100%正确,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30328661/