0

近隣の名前の束を含むフィールドを持つテーブルがあります。これらの近隣の一部には、2つ以上の単語が含まれる名前があります。3文字以下で、名前の途中に3つ以上の単語が含まれている単語のリストを取得するにはどうすればよいですか?

例えば:

=何もしない、1語だけ
ゴールデン湖 =何もしない、2語だけ
金の湖 =「の」抽出

本質的には、メタフォン文を作成するときに削除する「ゴミ」の単語のリストを作成したいと思います。

4

2 に答える 2

3
SELECT  'Lake of gold' RLIKE '[[:<:]].+[[:>:]].+[[:<:]].{1,3}[[:>:]].+[[:<:]].+[[:>:]]'

残念ながら、MySQLパターンを抽出することはできず、正規表現にのみ一致させることができます。MySQLスクリプト側でフィルタリングと抽出を行う必要があります。

于 2010-12-27T17:22:21.617 に答える
0
SELECT * FROM mytable WHERE mycolumn REGEXP "[[:alnum:]]+[[:space:]]+[[:alnum:]]{1,3}[[:space:]]+[[:alnum:]]+";

他の2つの単語の間に最大3文字の単語が少なくとも1つ含まれているすべてのエントリが検索されます。

MySQLで単語を直接抽出することはできませんが、これにより関連する行がフィルタリングされます。別のステップで抽出を行う必要があります。

于 2010-12-27T17:29:39.577 に答える