mysql - 在mysql中对具有2集数的行进行排序

标签 mysql sql-order-by rows

我有一个类似这样的表格,但问题是,每当我尝试根据剧集编号从最低到最高对它们进行排序时,我都会得到不同的结果。

id   |    episode
1    (Title) Episode 1
2    (Title) Episode 4    
3    (Title) Episode 2    
4    (Title) Episode 5-6    
5    (Title) Episode 13   
6    (Title) Episode 3    
7    (Title) Episode 8-9    
8    (Title) Episode 7    
9    (Title) Episode 11-12    
10   (Title) Episode 10 

我尝试过此行 ORDER BY LENGTH(table.episode),table.episode 来订购的情节。这效果很好,但如果剧集标题包含更多剧集编号,例如第 5-6 集第 8-9 集第 11-12 集> 此行将一直移动到底部。

这是我得到的结果

id   |    episode
1    (Title) Episode 1
2    (Title) Episode 2    
3    (Title) Episode 3           
4    (Title) Episode 4   
5    (Title) Episode 7  
6    (Title) Episode 10  
7    (Title) Episode 13
8    (Title) Episode 5-6     
9    (Title) Episode 8-9   
10   (Title) Episode 11-12    

最佳答案

这样就可以了:

SELECT *
FROM test2
ORDER BY cast( substring_index( substring_index( title, ' ', -1 ) , '-', 1 ) AS decimal )

关于mysql - 在mysql中对具有2集数的行进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28402638/

相关文章:

php - 我的 ask.php 语法有什么问题?

mysql - 在性能开始下降之前 MySQL 数据库可以有多大

mysql - 如何更改数据库中的日期

php - 使用 htaccess 在 url 中使用数据库中的数据

带组的 SQL Order By 子句

mysql - 如何在 MySQL 上对 "intercalary"行进行排序

mysql - MySQL中的ORDER BY日期,收到错误

r - 如何删除R中包含少于3行数据的组?

css - 具有 2 个部分的嵌套网格显示不一致的行大小和重叠元素

google-apps-script - Google 表格 - 将列日期格式传播到新行