我知道这已经被讨论了很多,我已经阅读了很多q/a以获得尽可能多的信息。我几乎有它的工作完美,但还不完全。以下是我得到的结果和我需要的一个例子。字母数字mysql排序
CMG-1
CMG-1GP
CMG-1EN
CMG-2GP
CMG-2
CMG-2EN
CMG-3
etc...
我必须订购的代码是
ORDER BY CAST(SUBSTRING(items.item_num, INSTR(items.item_num, '-') +1) AS UNSIGNED) ASC
这适用于大部分,但没有正确排序号码后什么。前缀是不同的字母和不同的长度,所以它可以很好地忽略前缀。这是在没有正确排序的数字之后。有什么建议么?
你能告诉你想要什么样的结果... – DRapp
如果你想字母排序,不要把它转换为数字。这扔掉了信件。 – Barmar
DRapp,我想把它分类为CMG-1,CMG-1EN,CMG-1GP等。EN应该在GP之前。 –