Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MySQL-字符串模式后按数字排序_Mysql - Fatal编程技术网

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

MySQL-字符串模式后按数字排序,mysql,Mysql,我的表中有一列“host_name”,其中包含类似“sto11、sto9、sto8、sto13”的数据。 我需要一个类似以下的查询: SELECT * FROM hosts ORDER BY (numbers after "sto"); 因此,查询返回的数据顺序如下:sto8、sto9、sto11、sto13 在mysql中有这样做的方法吗 如果前缀(sto)是固定的,则应从该行条目的第4个元素开始,将子字符串强制转换为无符号。大概是这样的: SELECT hosts.*, CAST(SUBS

我的表中有一列“host_name”,其中包含类似“sto11、sto9、sto8、sto13”的数据。 我需要一个类似以下的查询:

SELECT * FROM hosts ORDER BY (numbers after "sto");
因此,查询返回的数据顺序如下:sto8、sto9、sto11、sto13

在mysql中有这样做的方法吗

如果前缀(sto)是固定的,则应从该行条目的第4个元素开始,将子字符串强制转换为无符号。大概是这样的:

SELECT hosts.*, CAST(SUBSTRING(hosts.<column with order>, 4) AS UNSIGNED) AS orderednumbers 
FROM hosts 
ORDER BY orderednumbers;
选择hosts.*,将(子字符串(hosts.,4)转换为未签名)转换为OrderedNumber
来自东道主
按订购编号订购;

前缀是否始终相同?