我的系统中的Testcase_id是varchar并由触发器生成,我想根据varchar id的整数值对它们进行排序。到目前为止,我已经使用了三个查询但根本没有工作。我也尝试过将字符串转换为整数的函数。在这里我也提到了这个函数以及我在这个查询中的查询我还没有使用过函数。
select t.Testcase_id,
CONVERT(SUBSTRING_INDEX('t.Testcase_id','_',2),UNSIGNED INTEGER) as num
from testcase_master t
order by num
输出(查询):
答案 0 :(得分:1)
您必须在-1
内使用2
代替SUBSTRING_INDEX
:
select t.Testcase_id,
CONVERT(SUBSTRING_INDEX(t.Testcase_id,'_', -1),UNSIGNED INTEGER) as num
from testcase_master t
order by num
根据manual:
在计数出现之前,从字符串str 返回子字符串 分隔符delim。如果count是正面,那么左侧的所有内容 返回最终分隔符(从左侧计算)。如果算数是 否定,最终分隔符 right 的所有内容(计数 从右)返回。
答案 1 :(得分:0)
使用Cast
mongodb
或CAST(col AS UNSIGNED)
与REPLACE
CAST
您的查询: -
CAST(REPLACE(testcase_id,'TC_CTU_','') AS UNSIGNED)