Mysql, как заказать по первому номеру в наборе номеров - PullRequest
2 голосов
/ 08 февраля 2012

Мне нужно заказать по полю, которое содержит набор чисел.Допустим, таблица с именем TEST содержит ID, NAME, QUADS с QUADS следующим образом.

95,273,212,405
717,450,771,504
391,176,646,272

Это результаты, которые я получаю с помощью запроса, например

SELECT * FROM TEST ORDER BY QUADS
391,176,646,272
717,450,771,504
95,273,212,405

Этирезультаты, которые я ищу, чтобы получить

95,273,212,405
391,176,646,272
717,450,771,504

Меня интересует только первое число в наборе для "заказа".Представьте, что это возможно с подстрокой к запятой, но не знаете, как это сделать в MySQL.

Ответы [ 3 ]

3 голосов
/ 08 февраля 2012

Попробуйте это:

select * from test
order by cast(substring_index(quads,',',1) as unsigned)
2 голосов
/ 08 февраля 2012

Попробуйте с этим:

select QUADS, 0+QUADS as S from TEST order by S

0 + QUADS преобразует вашу строку в int и будет использовать для нее только последовательность первых цифр перед ",", что на самом деле и нужно.

2 голосов
/ 08 февраля 2012

Вам нужна функция substring_index .

... order by substring_index(x_field,',',1)

Извлекает текст в x_field до первого вхождения разделителя запятой

...