选择(几乎)重复的行

时间:2014-04-10 15:20:03

标签: mysql regex mariadb

我的表看起来像这样:

| id (int) | sentence (varchar) |

我想找到除一个特定单词之外几乎相同的所有行。例如:

| 230 | test |
| 321 | test sth |
...
| 329 | is (sth) it?
| 923 | is it?

在这种情况下,可能不同的词是 sth 。理想情况下,我可以使用某种"数组"与可能不同的单词列表。

这是我纯粹在SQL中做的事情吗?

2 个答案:

答案 0 :(得分:0)

只是一个未经测试的快速拍摄,抱歉,但我认为你可以做类似

的事情
SELECT * FROM table GROUP BY REPLACE(text, 'sth', '')

答案 1 :(得分:0)

您可以使用SOUNDEX。因此,使用您提供的示例,这些查询:

SELECT SOUNDEX('test')
SELECT SOUNDEX('test sth')
SELECT SOUNDEX('is (sth) it?')
SELECT SOUNDEX('is it?')

返回以下结果:

T230
T230
I200
I200

这意味着前两个后两个 听起来像是。我无法确定的是,这对您的实际数据有多好,您只需要尝试。