MySQL集团由Regex?

the*_*963 10 regex mysql database group-by

我有以下查询

SELECT Count(*) as Total_Count, Col1 
FROM Table1 
GROUP BY Col1 
ORDER BY Total_Count DESC;
Run Code Online (Sandbox Code Playgroud)

我想放大Col1.Col1中的数据采用以下格式:

text-abc1
txt4-abcde22
tex6-abc2
text4-imp4
text-efg1
txt-efg43
Run Code Online (Sandbox Code Playgroud)

我希望能够将它分组

After the first `-`, any first three/four/five characters match
Run Code Online (Sandbox Code Playgroud)

在此示例中,如果我们匹配前3个字符.输出将是:

Total_Count   Col1
3             abc
1             imp
2             efg
Run Code Online (Sandbox Code Playgroud)

有没有其他方法来实现这一目标

Ian*_*and 10

您可能不需要正则表达式,只需要字符串操作.对于三个字符:

SELECT count(*) AS Total_Count,
SUBSTRING(Col1 FROM POSITION('-' in Col1)+1 FOR 3) AS Col1_zoomed
FROM Table1
GROUP BY Col1_zoomed
ORDER BY Total_Count DESC
Run Code Online (Sandbox Code Playgroud)