我有一个带有文本列prono的表,其中的值将包含四(4)个组合数字,中间是-

示例数据:

id   prono
01   012-40-45-7894
02   045-12-13-8048
03   012-40-44-9704


我想获取整行,并根据第二个和第三个数字从数据库中对列表进行排序。有没有办法做到这一点?

目前,我暂时将它们作为一个整体进行排序。

mysqli_query($connection,"SELECT * FROM table ORDER BY prono");


它将这样输出(基于上面的示例数据):

id   prono
03   012-40-44-9704
01   012-40-45-7894
02   045-12-13-8048


但是我需要的输出是这样的(它将基于第二和第三种数字模式进行排列):

id   prono
02   045-12-13-8048
03   012-40-44-9704
01   012-40-45-7894


这可行吗?如何?

最佳答案

尝试使用子串
SELECT * FROM table ORDER BY substr(prono,5,2), substr(prono,8,2)

子串为您提供了位置5长度2的prono子串,以及另一个从8长度2的残存字符串(您需要订购的子串。更多信息,请参见Mysql.com

08-16 05:41