Есть MySQL таблица.
В одном из столбцов данные записыавются в формате число1:число2:число3, (например 171:174:3)
Нужно делать выборку строки, с самым большим числом2.
Т.е. нужно отсортировать выборку по числу 2.
Для того чтобы выделить число2, отсортировать по нему и выбрать строку, я использую следующий SQL:
SELECT * FROM `таблица` WHERE `smth`= smth ORDER BY SUBSTRING_INDEX(SUBSTRING_INDEX(`столбик`, ':', 2), ':', -1) DESC LIMIT 1;
Т.е. обычная выборка с использованием функции SUBSTRING_INDEX. Все бы прекрасно, только это не работает. выбор делается, но какой то кривой, вообще сортировка получается неправильная.
Завтра с самого утра отрежьте руки тому, кто спроектировал эту базу и сделайте по-человечески.
_________________ We've got the big memory and the small memory. The small memory's to remember the small things and the big memory's to forget the big ones.
Прошу прощения, тема не закрыта...
Использовав метод Colt'a, выбирать-выбирает, но сортировка не получается правильной. Т.е. выбирает отнюдь не максимальное значение. В чем может быть проблема?
Inviz, пока не настал понедельник можно почитать раздел "cast functions".
Почему не работает приведенный выше вариант? Хм. А посмотреть в документации, что делают использованные в нем функции -- религия не позволяет?
P.S. А в понедельник -- сделать, как я написал выше.
_________________ We've got the big memory and the small memory. The small memory's to remember the small things and the big memory's to forget the big ones.
Уровень доступа: Вы не можете начинать темы. Вы не можете отвечать на сообщения. Вы не можете редактировать свои сообщения. Вы не можете удалять свои сообщения. Вы не можете добавлять вложения.