Группировка по подстроке переменной длины в MySQL - PullRequest
0 голосов
/ 10 июня 2019

У меня есть запрос, где мне нужно сгруппировать по подстроке строки переменной длины. Строка является путем в URL. Например, следующее должно быть сгруппировано вместе ...

  1. / здоровье / отжимание /
  2. / здоровье / отжимания / 1
  3. / здоровье / отжимания / 1 /
  4. здоровье / отжимания / 1
  5. здоровье / отжимание
  6. здоровье / отжимания / 1 /

Где 1 может быть любым целым числом до 30. Я бы хотел, чтобы все они свернулись в / health / pushups / в функции GROUP BY.

Есть идеи?

Заранее спасибо!

Ответы [ 2 ]

0 голосов
/ 10 июня 2019

2 варианта:

WHERE ( url LIKE '%health%' and url LIKE '%pushups%' )

или с REGEXP_LIKE

WHERE REGEXP_LIKE(url,'^+health/pushups')>0

0 голосов
/ 10 июня 2019

Хммм.,,Это сложно из-за / в начале.Это должно работать:

select (case when url like '/%'
             then substring_index(url, '/', 3)
             else concat('/', substring_index_url, '/', 2))
        end) as grp,
       count(*)
from t
group by grp;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...