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

时间:2012-07-29 20:31:27

标签: mysql

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

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

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

我得到以下回复:

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

char_length如何改变同一个单词?如何删除长度超过1的单词?

1 个答案:

答案 0 :(得分:0)

@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;

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