我有一个表格,其内容类似于:
id | title
------------
1 | 5. foo
2 | 5.foo
3 | 5. foo*
4 | bar
5 | bar*
6 | baz
6 | BAZ
…等等。我想按标题分组并忽略多余的部分。我知道 Postgres 可以做到这一点:
SELECT * FROM (
SELECT regexp_replace(title, '[*.]+$', '') AS title
FROM table
) AS a
GROUP BY title
但是,这很简单,如果我试图预测所有可能的变化,那将变得非常笨拙。所以,问题是,有没有比使用正则表达式更通用的方法来进行模糊分组?是否有可能,至少在不伤筋动骨的情况下这样做?
编辑:为了澄清,没有任何变化的偏好,这是分组后表格的样子:
title
------
5. foo
bar
baz
即,变化将是仅由几个字符或大写字母不同的项目,只要将它们分组,剩下哪些并不重要。