我有一张表,我在其中添加了英语词典单词。现在我有一些似乎重复的记录,但字符串的长度不同。
例如'aaron'在我的表中重复了两次,但是当我使用这个查询时:
select id, word, char_length(word) from my_table;
我得到以下信息:
id | word | char_length
7 | aaron | 5
12 | aaron | 6
char_length
同一个词怎么能变?我该怎么做才能删除一个长度超过 1 的单词?
我有一张表,我在其中添加了英语词典单词。现在我有一些似乎重复的记录,但字符串的长度不同。
例如'aaron'在我的表中重复了两次,但是当我使用这个查询时:
select id, word, char_length(word) from my_table;
我得到以下信息:
id | word | char_length
7 | aaron | 5
12 | aaron | 6
char_length
同一个词怎么能变?我该怎么做才能删除一个长度超过 1 的单词?
@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;
但不要盲目运行——它会删除所有带有额外空格的行,即使没有匹配的“正确”条目。