我有一个包含三个字段的表:“Id,Name,Sequence” 在“序列”列中,有以下条目:1,2,3,4,2a,5,2b,2c,3,4a(行方式)。
现在我想要一个mysql查询,可以对这些值进行排序,如:
1,2,2a,2b,2c,3,4,4a,5。
我尝试过以下查询
SELECT * FROM table_name ORDER BY CAST(sequence AS UNSIGNED) ASC
。
但它不起作用。
答案 0 :(得分:1)
您希望先按整数排序,然后按数字后的子字符串排序,只需按整个字符串排序作为子排序:
SELECT * FROM table_name ORDER BY CAST(sequence AS UNSIGNED), sequence;
这是一个SQL Fiddle的示例。我离开了ASC
,因为这是默认设置。