MySQL订单z1然后是aa1

MySQL订单z1然后是aa1,mysql,Mysql,我有一个字段,它存储属性04202011a1到04202011z1的列表号,然后它转到04202011aa1到04202011zz1,依此类推,我如何获得自04202011以来的下一个数字或字母组合,它是添加的日期,最后一个1是用户ID唯一增加的部分是字母 我可以将id分成几部分,但不确定如何获取最后一个 谢谢 CG在您设法取出非数字部分(或按照Mikko Wilkman的建议将其存储在单独的字段中)并希望z出现在aa之前后,您可以使用: SELECT non_numeric_id FROM t

我有一个字段,它存储属性04202011a1到04202011z1的列表号,然后它转到04202011aa1到04202011zz1,依此类推,我如何获得自04202011以来的下一个数字或字母组合,它是添加的日期,最后一个1是用户ID唯一增加的部分是字母

我可以将id分成几部分,但不确定如何获取最后一个

谢谢


CG

在您设法取出非数字部分(或按照Mikko Wilkman的建议将其存储在单独的字段中)并希望
z
出现在
aa
之前后,您可以使用:

SELECT non_numeric_id FROM table 
ORDER BY length(non_numeric_id), non_numeric_id
编辑

好的,要提取非数字id,假设列名是
id
,您可以使用这个相当难看的解决方案:

SELECT
      id,
      REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(
      id,
      '1',''),'2',''),'3',''),'4',''),'5',''),'6',''),'7',''),'8',''),'9',''),'0','')
      AS clean_id
FROM table
ORDER BY length(clean_id), clean_id

其思想是先删除所有数字,然后按长度排序,然后按字母顺序排序。

下一个顺序是什么
04202011AA1
04202011ZZ1
04202011b1
04202011z1
请澄清您的问题,为什么不将其存储为单独的字段?顺序是先使用一个字母(a到z),然后增加为两个字母(aa到zz),然后是3、4、5,依此类推,这取决于每天提交的数量。我在考虑separte字段Mikko如果我有04202011a1到04202011z1,那么04202011aa1到04202011zz1,我想先从mysql订购一个字母,然后是带2个字母的,然后是3个,依此类推