MySQL - 字符串模式后按数字排序

时间:2016-04-01 12:09:57

标签: mysql

我有一个专栏" host_name"在我的表中,使用" sto11,sto9,sto8,sto13和#34;等数据。 我需要一个像:

这样的查询
SELECT * FROM hosts ORDER BY (numbers after "sto");

因此查询返回此订单的数据:sto8,sto9,sto11,sto13

有没有办法在mysql中执行此操作?

1 个答案:

答案 0 :(得分:1)

鉴于前缀(sto)是固定的,您应该将子字符串转换为无符号,从该行条目的第4个元素开始。像这样:

SELECT hosts.*, CAST(SUBSTRING(hosts.<column with order>, 4) AS UNSIGNED) AS orderednumbers 
FROM hosts 
ORDER BY orderednumbers;