从高到低:
$query="select * from sponsors order by budget DESC";
从低到高:
$query="select * from sponsors order by budget ";
执行此查询时,它仅按第一位排序。例如:
预算:
95,00,000
6,00,000
300万
29,58,000
22,78,000
我究竟做错了什么?
最佳答案
解决此问题的“正确”方法是重新构建表并将预算划分为两个字段,一个int和一个varchar,它们描述int所指的内容,例如。 “每年”或“进行中”或“每月”或其他。这样,您可以通过int字段正确地排序数据。
在此期间,您应该能够通过以下方式对数据进行排序:从字段的数字部分中去除逗号,然后将其强制转换为无符号整数:
SELECT *
FROM sponsors
ORDER BY CAST(REPLACE(budget, ',', '') AS UNSIGNED)
只要所有预算值都以可能包含或不包含逗号的数字开头,此方法就应该起作用。