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)
我有一个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)