SQLinfo.ru - Все о MySQL

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 09.12.2016 15:11:17

iskiz
Участник
Зарегистрирован: 21.08.2012
Сообщений: 7

ORDER BY по меньшему значению в ячейке

Здравствуйте. Никак не могу сообразить одну задачку. В ячейках лежат данные такого вида:


id    field
1     115|text|109
2     10|text|18
3     90|text|70
4     150|text|105
5     200|text|300
 

Нужно отсортировать по меньшему числу в ячейке. Сами два числа в ячейке я достаю через SUBSTRING_INDEX.

Первое:

SUBSTRING_INDEX( field,  '|', 1 )
 

Второе:

SUBSTRING_INDEX( field,  '|', -1 )
 

Как сделать сортировку, например по первому числу, понятно:

ORDER BY SUBSTRING_INDEX( field,  '|', 1 ) DESC
 

Не понимаю как выбрать меньшее из двух чисел при ORDER BY, дабы получить такой вывод:

id    field
2     10|text|18
3     90|text|70
4     150|text|105
1     115|text|109
5     200|text|300
 

Заранее благодарю

Неактивен

 

#2 09.12.2016 15:16:45

klow
Активист
Зарегистрирован: 06.12.2014
Сообщений: 131

Re: ORDER BY по меньшему значению в ячейке

LEAST(value1,value2,...)
Для данного случая

ORDER BY LEAST(SUBSTRING_INDEX( field,  '|', 1 ),SUBSTRING_INDEX( field,  '|', -1 ))

Отредактированно klow (09.12.2016 15:19:21)

Неактивен

 

#3 09.12.2016 16:13:20

iskiz
Участник
Зарегистрирован: 21.08.2012
Сообщений: 7

Re: ORDER BY по меньшему значению в ячейке

Спасибо. Помогло

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson