我有一个包含三个字段的表:“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(序列 AS UNSIGNED) ASC
。
但它不起作用。
最佳答案
您想先按整数排序,然后按数字后面的子字符串排序,只需按整个字符串作为子排序进行排序:
SELECT * FROM table_name ORDER BY CAST(sequence AS UNSIGNED), sequence;
这是一个SQL Fiddle举个例子。我省略了 ASC
,因为这是默认设置。
关于mysql - 在mysql中将varchar字段作为整数排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48890492/