我有一個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?
我有一個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?
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
可以使用LPAD與00填補缺失的焦炭
select max(lpad(enduser_id , 6, '0')) as enduser_value
from your_table
我看到你的邏輯,我的眼睛這應該工作但它不預成型'max()'正確。無論哪種方式,這是最接近的答案 –
我會勸你一定要規範你的設計 – Strawberry