MySQL 按计算列排序

MySQL sort on computed column

我有一个table,数据如下:

field1 field2 realdata
------ ------ --------
ABC    01     1A
ABC    01     2A
ABC    01     1B
ABC    01     2B
ABC    01     10B
ABC    01     11B
ABC    01     10A
ABC    01     11A
ABC    02     10B
ABC    02     1A

我需要按所有三个字段对数据进行排序。 A 必须组合在一起,然后是 B,当然是按数字顺序排列。

我将 FormatRealData 创建为存储函数,return将 RealData 作为: A-01, A-10, A-02, B-11, ... etc. 这让我可以得到我需要的那种。

我有以下查询:

select field1, field2, RealData, FormatRealData(RealData) as SortData
from mytable
order by field1, field2, SortData

现在解决问题:

其他开发人员将使用上述查询来创建报告,我不想将 SortData 留在那里,因为它永远不会出现在报告中,只有 RealData 应该。是否可以像我一样创建列,对数据进行排序,然后删除该列或不删除该列return?

SELECT field1, field2, RealData
FROM mytable
ORDER BY field1, field2, FormatRealData(RealData)