数据库中的字母数字排序/排序

use*_*339 0 php mysql

在数据库中,它存储A1,A2,A10,A12,A5,A8的值,但当我检索它时,它显示如下: -

A1,A10,A12,A2,A5,A8

有没有办法正确排序?喜欢

A1,A2,A5,A8,A10,A12

Ora*_*ill 5

如果字符串始终以单个字母/数字前缀开头,那么您可以使用

 SELECT no from my_table order by substring(no,1,1), substring(no,2)+0 
Run Code Online (Sandbox Code Playgroud)

在这里小提琴

在PHP中,您可以使用usort在字段上返回strnatcasecmp调用的结果,在多维数组中对其进行排序.

usort($records, function($a, $b){return strnatcasecmp($a["fieldname"], $b["fieldname"]);});
Run Code Online (Sandbox Code Playgroud)