数据库报告同一单词的不同字符长度



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

例如,"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%';

第一个将只匹配单词恰好为aaron的行,而第二个将匹配任何位置包含aaron的行。如果有带有额外内容的行,比如空白,它们会显示在第二行,但不会显示在第一行。

清除这些重复项的一种可能方法是运行以下程序:

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

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

最新更新