2016-06-30 10 views
0

テーブルから重複する行を削除しようとすると、以下のデータを持つテーブルがあります。例:ab = ba、cd = dc ..SQL:文字列の逆位置

お勧めします。

ab 
ac 
ad 
ba 
bc 
bd 
da 
db 
dc 
ea 
eb 
ec 
ed 
fa 
fb 
fc 
fd 
+0

のですか? – jarlh

+0

データをソートする - 最初のオカレンスを見つける - 残りを削除する –

+0

あなたの質問を編集し、追加情報を提供してください:(1)あなたが使っているデータベースは何ですか? (2)あなたはどんな結果を望んでいるのですか? (3)はあなたの1列または2列の値ですか? (4)何を試しましたか? –

答えて

1

このクエリは、テーブル自体を結合します。 WHERE条件では、t2には削除する値しか保持されません(つまり、caは削除されますが、acは削除されません)。

DELETE t2.* 
FROM `table` t1 
INNER JOIN `table` t2 ON t1.letters<t2.letters AND REVERSE(t1.letters)=t2.letters; 

あなただけのクエリでSELECTDELETEを置き換え、値が削除されるかを確認したい場合は

0

test22から削除するwhere(test22からのselect count(1)id = a.idまたはid = reverse(a.id))> 1およびrowid <>(test22からmin(rowid)を選択します。 c.id = a.idまたはc.id =リバース(a.id))

と仮定test22は、テーブルで、列には、重複する値が含まれているDBMSが使用しているID