使用特殊字符对数据进行排序

时间:2015-05-31 10:16:11

标签: mysql sql

在专栏中,我有这种变体。

Home External +1 PD  
Home +24 PD  
Home +1 PD  
Home Set 1 PD  
Home External +12 PD   
Home 1 PD  
Home External +2 PD  
Home Set +1 PD  
Home External +24 PD  
Home Set PD  

我正试图以这种方式解决它们:
(字母和数字顺序)

Home 1 PD  
Home +1 PD  
Home +24 PD  
Home External +1 PD  
Home External +2 PD  
Home External +12 PD   
Home External +24 PD  
Home Set PD  
Home Set 1 PD  
Home Set +1 PD  

我的问题是我可以有多个名称长度不同的名字,在这种情况下是Home但我也有其他名字 试图用CAST,ABS查询,但我不能像我那样得到它。

谢谢!

1 个答案:

答案 0 :(得分:0)

您必须拆分列值以提取字符串和数字部分。

您可以使用SUBSTRING_INDEX函数传递-1和-2来获取最后2个空格字符的索引。

最后一个和前一个最后一个空格之间的SUbstring是数字部分,从值start到第二个最后一个空格的子字符串是文本部分。

所以你应该添加 按TEXT_PART_CALCULATED,NUMBER_PART_CALCULATED

订购