2016-08-11 58 views
-1

我有一個VARCHAR列保存用戶ID。MySQL varchar到unsigned的字母數字

示例記錄ID,1001, 1002, 1003

我一直在使用SELECT MAX(CAST(enduser_id AS unsigned)) as enduser_value來檢索最大ID。這適用於數值,但是當我有字母數字標識時,它將失敗並且只返回0

示例字母數字標識,AC1001, AC1002, AC1003

有沒有一種方法可以使用單個查詢檢索兩個ID類型的MAX?

+0

我會勸你一定要規範你的設計 – Strawberry

回答

1
select max(CAST((substring(id,3)) AS DECIMAL(5,0))) from table 

最後你還可以對AC進行連接。

select concat('AC'+ max(CAST((substring(id,3)) AS DECIMAL(5,0)))) from table 
1

可以使用LPAD與00填補缺失的焦炭

select max(lpad(enduser_id , 6, '0')) as enduser_value 
from your_table 
+0

我看到你的邏輯,我的眼睛這應該工作但它不預成型'max()'正確。無論哪種方式,這是最接近的答案 –