0

我有一张表,我在其中添加了英语词典单词。现在我有一些似乎重复的记录,但字符串的长度不同。

例如'aaron'在我的表中重复了两次,但是当我使用这个查询时:

select id, word, char_length(word) from my_table;

我得到以下信息:

id | word  | char_length
 7 | aaron |  5
12 | aaron |  6

char_length同一个词怎么能变?我该怎么做才能删除一个长度超过 1 的单词?

4

1 回答 1

0

@Vatev 的评论很可能是正确的。

试试这两个查询:

1. SELECT * FROM my_table WHERE word = 'aaron';
2. SELECT * FROM my_table WHERE word like '%aaron%';

第一个将仅匹配 word 恰好是的行,aaron而第二个将匹配包含 aaron 任何位置的行。如果有包含额外内容的行,比如空格,它们会出现在第二个,而不是第一个。

清理这些重复项的一种可能方法是运行以下命令:

DELETE FROM my_table WHERE TRIM(word) != word;

但不要盲目运行——它会删除所有带有额外空格的行,即使没有匹配的“正确”条目。

于 2012-07-29T21:05:04.707 回答