MySQL order by 排序小计 技术文章

在使用 MySQL 排序的时候,

我想把 考号(字段 kh) 里面从左数第三个(包含第三个)取两个数为 11 的所有结果的 分数(字段 fs)进行 降序排列,可是我用order by出现这样的结果:
前面的有比较小的值(越小不应该在最后么),后面才是按照降序排列的(数据有几千条)...很尴尬, 同样,我如果用升序排列,则前面的是按照升序的排序的,可是最后的几行就不是的...最后的几行有比较小的分数(不应该是越到最后越是最大的分数么),特么真是太尴尬...

MySQL 代码如下:

SELECT kh, xm, fs FROM score WHERE SUBSTRING(kh, 3, 2) = '11' ORDER BY fs DESC


出现类似如下图的结果(这是使用降序的时候),请问该如何写 MySQL 语句?

图

解决办法:我发现我的 FS 字段是 varchar 的 我改成 int 整形在排序也对了,你说的使用 ORDER BY abs(fs) desc 也可以..我不知道 ABS(X)这个函数...


admin 发布于  2017-3-28 15:34