美文网首页
Mysql中数字排序问题

Mysql中数字排序问题

作者: 逝者如斯灬 | 来源:发表于2018-09-24 11:23 被阅读0次

    手动转换类型:
    用下面的方法就可以了,使server_id+0之后再排序,问题解决了。
    select server_id from cardserver where game_id = 1 order by server_id+0 desc limit 10;
    +———–+
    | server_id |
    +———–+
    | 10 |
    | 8 |
    | 7 |
    | 6 |
    | 5 |
    | 4 |
    | 3 |
    | 2 |
    | 1 |
    +———–+

    使用MySQL函数CAST/CONVERT:
    mysql为我们提供了两个类型转换函数:CAST和CONVERT,现成的东西我们怎能放过?
    CAST() 和CONVERT() 函数可用来获取一个类型的值,并产生另一个类型的值。
    这个类型 可以是以下值其中的 一个:
    BINARY[(N)]
    CHAR[(N)]
    DATE
    DATETIME
    DECIMAL
    SIGNED [INTEGER]
    TIME
    UNSIGNED [INTEGER]
    所以我们也可以用CAST解决问题:
    select server_id from cardserver where game_id = 1 order by CAST(server_id as SIGNED) desc limit 10;
    也可以使用CONVERT来搞定此问题:
    select server_id from cardserver where game_id = 1 order by CONVERT(server_id,SIGNED) desc limit 10;

    相关文章

      网友评论

          本文标题:Mysql中数字排序问题

          本文链接:https://www.haomeiwen.com/subject/sphdwftx.html