MySQL 5.5 Community Server
MySQL 5.6 Community Server
Percona Configuration Wizard
XtraBackup 搭建主从复制
Great Sites on MySQL
Percona
MySQL Performance Blog
Severalnines
推荐管理工具
Sequel Pro
phpMyAdmin
推荐书目
MySQL Cookbook
MySQL 相关项目
MariaDB
Drizzle
参考文档
http://mysql-python.sourceforge.net/MySQLdb.html
newworld
V2EX  ›  MySQL

MySQL order by 排序问题,是 bug 还是我太年轻

  •  1
     
  •   newworld · Mar 28, 2017 · 3286 views
    This topic created in 3364 days ago, the information mentioned may be changed or developed.

    各位大佬看过来,小弟请教,MySQL 学艺不精...特地来请教各位大佬,望不吝赐教啊... 在使用 MySQL 排序的时候,

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

    MySQL 代码如下:

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


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

    Supplement 1  ·  Mar 28, 2017
    顺利结贴 谢谢大家
    newworld
        1
    newworld  
    OP
       Mar 28, 2017
    哪位知道的,赐教啊 //
    binjjam
        2
    binjjam  
       Mar 28, 2017
    把 fs 的字段属性改成 整形 相关的。
    binjjam
        3
    binjjam  
       Mar 28, 2017   ❤️ 1
    @binjjam 或者 ORDER BY abs(fs) desc
    newworld
        4
    newworld  
    OP
       Mar 28, 2017
    @binjjam #3 感谢 思密达..我发现我的 FS 字段是 varchar 的 我改成 int 整形在排序也对了,你说的使用 ORDER BY abs(fs) desc 也可以..我不知道 ABS(X)这个函数 谢谢
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   2676 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 32ms · UTC 10:56 · PVG 18:56 · LAX 03:56 · JFK 06:56
    ♥ Do have faith in what you're doing.