2015-02-09 1 views
0

У меня есть таблица, которая выглядит примерно так, но проблема в том, что всякий раз, когда я пытаюсь установить их в порядке, исходя из их номера эпизода от самого низкого до самого высокого, я получаю разные результаты.Сортировка строк с 2 номерами эпизодов в mysql

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( стол .episode), стол .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  

ответ

0

Это будет делать это:

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

Это работает, по-прежнему получать те же результаты –

+0

Извините, моя ошибка, не могли бы вы попробовать еще раз? – Roman

+0

Это отлично работает! Спасибо приятель! –

0

Что такое тип данных (EpisodeNumber), я считаю, что это VARCHAR. Сортировка по varchar не рекомендуется, я бы создал новый столбец с DataType int и отсортировал его. Я не уверен, что это решение, которое вы ищете ...

+0

Нет, не то, что я ищу –

Смежные вопросы