【问题标题】:Correct sorting of mysql elementsmysql元素的正确排序
【发布时间】:2021-11-26 20:11:51
【问题描述】:

例如,我在列号中有此数据:M1, M2, ... M9, M10, U1, U2。在 MySQL 查询中,我有:ORDER BY number ASC,但顺序显示为:M1, M10, M2 ... U1, U2。我可以做些什么来下订单:M1, M2, ... M9, M10, U1, U2?这可能吗?

【问题讨论】:

  • 据我所知,MySQL 没有内置的方法来进行自然排序(这是您想要实现的)。
  • 因此,实现这一目标的最佳方法是简单地编辑数据,例如:M01、M02 ... M10?

标签: mysql sql sql-order-by


【解决方案1】:

如果你去掉第一个字符,然后将结果转换为整数值,你可以这样做:

...ORDER BY SUBSTRING(mycolumn, 1, 1),
            SUBSTRING(mycolumn, 2) + 0

更新为显示按字母排序,然后按字母后的数值排序。

【讨论】:

  • 好吧,它工作得很好,但目前是这样的:M1,U1,M2...,是否可以先有相同的字母(M1,M2...U1)?
  • 查看上面的更新解决方案。
  • 它有效。谢谢!
猜你喜欢
  • 2016-02-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-01-24
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多