2016-08-11 61 views
1

私は自動生成タグのMySQLテーブルを持っていますが、長いタグ内に表示される短いタグを削除したいと考えています。MySQL部分一致の削除

例えば

は、SELECT * FROM tags戻り

Donald Trump 
Donald 
Trump 
Hillary Clinton 
Hillary 
Clinton 
US Election 
US 
Election 

は、私が長いタグ内に表示されるすべての短いタグを削除したいんだと言うので、私はで終わる:

Donald Trump 
Hillary Clinton 
US Election 

これは可能ですか?

ありがとうございます。

答えて

2

それ自身とテーブルを結合し、より長い名前の中にあるより短い名前の行を削除します。

DELETE t1 
FROM tags AS t1 
JOIN tags AS t2 ON LENGTH(t1.name) < LENGTH(t2.name) AND LOCATE(t1.name, t2.name)