我有一个字段,它存储属性04202011a1到04202011z1的列表编号然后它转到04202011aa1到04202011zz1,依此类推,我怎样才能获得自04202011以来的下一个数字或字母组合的添加日期和最后的1个userID唯一增加的部分是字母
我可以将id分成几部分,但不知道如何获得最后一个
感谢
CG
答案 0 :(得分:0)
设法取出非数字部分(或者只是将其存储在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
我们的想法是首先删除所有数字,然后按长度排序,然后按字母顺序排序。