V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
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
astome
V2EX  ›  MySQL

关于 mysql 查询字符串排序的问题

  •  
  •   astome · 2016-07-24 14:46:18 +08:00 · 2762 次点击
    这是一个创建于 3036 天前的主题,其中的信息可能已经有所发展或是发生改变。

    如果一个字段存的是

    A1 A2 A10 A15 A6 A90

    查询结果 如何倒序排序 用到什么函数吗?大神们

    6 条回复    2016-07-26 17:52:29 +08:00
    lilifenghao44
        1
    lilifenghao44  
       2016-07-24 20:07:22 +08:00 via iPhone
    sql 最后加上 order by 字段名 desc
    sss3600123
        2
    sss3600123  
       2016-07-24 20:31:20 +08:00
    直接 order by 字段名
    billlee
        3
    billlee  
       2016-07-24 22:19:54 +08:00
    你是想把 A6 排在 A2 和 A10 之间吗?
    astome
        4
    astome  
    OP
       2016-07-26 08:58:45 +08:00
    @billlee 我描述的有点问题,我的意思是说如何按照 有字母后面带数字的 数据 并按照字母后面的数字大小 进行排序,如何直接 order by 会直接 把 A10 排在前面 而 A2 排后面 因为 A10 匹配的第一个数字是 1 会比 A2 大 但实际 A10 比 A2 要大
    Martin9
        5
    Martin9  
       2016-07-26 17:08:46 +08:00   ❤️ 1
    @astome
    SELECT * FROM tableName order by Cast (( substring (colname, Cast (( patindex ( ' %[0-9]% ' ,colname)) as int ), 100 )) as int )

    tablename 和 colname 对应表面和字段名
    astome
        6
    astome  
    OP
       2016-07-26 17:52:29 +08:00
    @Martin9 大牛膜拜中...
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2805 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 13:29 · PVG 21:29 · LAX 05:29 · JFK 08:29
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.