0

英語の辞書の単語を追加したテーブルがあります。現在、重複しているように見えるレコードがいくつかありますが、文字列の長さが異なります。

たとえば、「aaron」はテーブルで 2 回繰り返されますが、このクエリを使用すると:

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

次のものが返されます。

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

char_length同じ単語をどのように変更できますか? 長さを 1 超える単語を 1 つ削除するにはどうすればよいですか?

4

1 に答える 1

0

@Vatev のコメントは正しい方向に進んでいる可能性が高い。

次の 2 つのクエリを試してください。

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

1 つ目は word が正確に一致する行にのみ一致aaronし、2 つ目は aaron を含む行に一致します。空白などの余分なコンテンツを含む行がある場合、それらは 2 番目に表示されますが、最初には表示されません。

これらの重複をクリーンアップする方法の 1 つは、次のコマンドを実行することです。

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

ただし、盲目的に実行しないでください。一致する「正しい」エントリがなくても、余分な空白を含むすべての行が削除されます。

于 2012-07-29T21:05:04.707 に答える