++++++++++++++++++++++++++++++
+ id + title + num +
++++++++++++++++++++++++++++++
+ 1 + name slim + 5 +
+ 2 + name frog + 6 +
+ 3 + name frog + 2 +
+ 4 + nick one + 8 +
+ 5 + nick two + 3 +
+ 6 + nick strong man + 7 +
++++++++++++++++++++++++++++++
Хочу командой GROUP BY сделать группировку, по полю title, но по значению ДО первого пробела
SELECT *
FROM `my_table`
WHERE 1
GROUP BY команда_которую_не_знаю(`title`)
ORDER BY `num` ASC
На выходе охота получить что то типа
++++++++++++++++++++
+ id + title + num +
++++++++++++++++++++
+ 3 + name + 2 +
+ 5 + nick + 3 +
++++++++++++++++++++
Такое возможно? Если да, подскажите как написать запрос
p.s. в данный момент делаю запрос ко всей таблице, и уже после запроса обрабатываю данные
благодаря мудрым советам @Akina - можно сделать запрос
SELECT `id`, SUBSTRING_INDEX(`title`, ' ', 1), `num`
FROM `my_table`
WHERE 1
GROUP BY `title`
ORDER BY `num` ASC
но команда GROUP BY перестает работать
++++++++++++++++++++
+ id + title + num +
++++++++++++++++++++
+ 3 + name + 2 +
+ 1 + name + 5 +
+ 2 + name + 6 +
+ 5 + nick + 3 +
+ 6 + nick + 7 +
+ 4 + nick + 8 +
++++++++++++++++++++
Непонятно, для чего в выходном наборе поле id
. И тем более непонятно, что должно выводиться, если одному и тому же (судя по ORDER BY - минимальному) значению num
соответствует несколько разных id
...
Додумывая задачу, считаю, что наиболее верным будет следующий запрос:
SELECT SUBSTRING_INDEX(`title`, ' ', 1) title, min(`num`) num
FROM `my_table`
-- WHERE 1
GROUP BY SUBSTRING_INDEX(`title`, ' ', 1)
ORDER BY `num` ASC
Если всё же id
необходим, то запрос будет таким:
SELECT MIN(t1.id) id, t2.title, t2.num
FROM my_table t1
JOIN (SELECT SUBSTRING_INDEX(`title`, ' ', 1) title, min(`num`) num
FROM `my_table`
GROUP BY SUBSTRING_INDEX(`title`, ' ', 1)) t2
ON SUBSTRING_INDEX(t1.title, ' ', 1) = t2.title
AND t1.num = t2.num
GROUP BY t2.title, t2.num
ORDER BY num
fiddle
Виртуальный выделенный сервер (VDS) становится отличным выбором
Есть сайт на котором должен быть скролл по секциям, наподобие вертикального слайдера и если контент в секции больше высоты экрана он должен...
Тесты показали запаздывание программы, решил воспользоваться профайлингомСперва пробовал встроенный в 2017 студию
есть самая обычная WinForms(С#) на которой есть два TextBox или lablesв одну форму нужно выводить Имя пользователя компьютера во вторую его номер телефона...