MySQL GROUP by Regex? 質問する

MySQL GROUP by Regex? 質問する

次の質問があります

SELECT Count(*) as Total_Count, Col1 
FROM Table1 
GROUP BY Col1 
ORDER BY Total_Count DESC;

Col1 を拡大したいです。Col1 のデータは次の形式です。

text-abc1
txt4-abcde22
tex6-abc2
text4-imp4
text-efg1
txt-efg43

グループ化したい

After the first `-`, any first three/four/five characters match

この例では、最初の 3 文字が一致する場合、出力は次のようになります。

Total_Count   Col1
3             abc
1             imp
2             efg

これを実現する他の方法はありますか?

ベストアンサー1

正規表現は必要なく、文字列操作だけが必要な場合があります。3 文字の場合:

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

おすすめ記事