【发布时间】:2010-12-11 16:41:16
【问题描述】:
我有一个表格,其内容类似于:
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
即,变体将是仅由几个字符或大写字母不同的项目,只要将它们分组,剩下哪些并不重要。
【问题讨论】:
标签: sql postgresql group-by fuzzy