按mysql表列值的一部分对其进行排序

按mysql表列值的一部分对其进行排序,mysql,sql,Mysql,Sql,我有一个带有列名Id的表sample,其值如下 BA001 BA002 CAB003 BA004 BA005 现在,当我将orderbyid应用到select查询时,输出如下 BA001 BA002 BA004 BA005 CAB003 但我需要有序的输出 BA001 BA002 CAB003 BA004 BA005 有可能做到这一点吗?试试这个 SELECT ID FROM Table1 Order By Right(ID,3),ID 是的,这是可能的。假设您的Id列是一个VARCHA

我有一个带有列名
Id
的表
sample
,其值如下

BA001
BA002
CAB003
BA004
BA005
现在,当我将
orderbyid
应用到select查询时,输出如下

BA001
BA002
BA004
BA005
CAB003
但我需要有序的输出

BA001
BA002
CAB003
BA004
BA005
有可能做到这一点吗?

试试这个

SELECT ID FROM Table1
Order By Right(ID,3),ID

是的,这是可能的。假设您的Id列是一个VARCHAR,并且您的Id中有固定数量的字符作为数字,并且它们显示在右侧,那么您可以在MySQL中使用正确的函数

SELECT * FROM sample ORDER BY RIGHT(Id, 3);

这些是我们的员工ID。对于正式员工,id将类似于
BA001
。但是对于合同雇员,id看起来像
CAB003
。因此,我需要按员工Id对表进行排序,只有idi的编号,我认为即使没有
Id(最后一个Id),它也能正常工作
inquery@user2979046它对您的订单是安全的…因为它将按数字和ID进行订购。如果您有值CA004…那么它将位于BA004下,但这些值将仅以
BA
CBA
开头。这是订购的安全性…如果您更改ID值,则可以使用