ネイティブSQLの問題を解決するためのクエリが必要です。mysql group_concatテーブル間で
私は単語と同義語を保持する "同義語"という名前のテーブルを持っています。
id, word, synonym
1, abandon, forsaken
2, abandon, desolate
...
あなたが見ることができるように、この表では単語が何度も繰り返されているため、テーブルが不必要に大きくなります。
id, word, synonyms
1, abandon, 234|90
...
注:ここでは「234」と「90」は、新しく作成された言葉のテーブルに見捨てられたと荒涼としたのidのある私のような重複した単語を持たないテーブルの名前「言葉」を持っていると思います。
私はすでに同義語テーブルの単語フィールドから一意の単語で新しい "単語"テーブルを作成しました。私が必要とするのは、各単語の同義語の同義語表を見てから、その単語の表からIDを見つけ出し、 "同義語"フィールドを垂直線分の分離IDで更新するSQLクエリです。同義語テーブルを削除します。
だけのよう:
UPDATE words SET synonyms= (vertical line seperated id's (id's from words table) of the words at the synonyms at synonym table)
私はGROUP_CONCATを使用する必要があります知っているが、私はこれを達成できませんでした。
これで十分です。助けてくれてありがとう!
ジャストノート - 2つの言葉はあなたが提案している構造と同義語であるならば、識別することがやや難しいかもしれません。 –
私は困難を考えましたが、この構造では、 "id = '1'やid = '2' ...のようなクエリ内でidとimplodeを取得するためにexplodeを使用して、それぞれの同義語を取得します。それは私にとっては良いことです。 –