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