0

全文検索を使用して Mysql クエリを実行し、たとえば列 (hayes) を検索し、一致したら残りの文字列を「hayes」に置き換える方法はありますか?:

列 1: ロンドン、ヘイズ、MD15 736

WHERE MATCH (COLUMN1) AGAINST ('hayes' IN BOOLEAN MODE)

Column1: ヘイズ

したがって、列 1 は「hayes」と一致したため、残りの文字列が削除されました。たとえば、大規模なデータセットでは時間がかかりすぎるため、全文で行う必要があります。

そして、キーワードの順序が決まっていないので、使用できませんfind_in_set

また、以下のような多数のキーワードを使用してこれを実行します。

WHERE MATCH (COLUMN1) AGAINST ('hayes' IN BOOLEAN MODE)
OR MATCH (COLUMN1) AGAINST ('+WEST +BROMWICH' IN BOOLEAN MODE)
OR MATCH (COLUMN1) AGAINST ('London' IN BOOLEAN MODE)

したがって、次の文字列を含む column1 で上記のクエリを実行すると:

london, m456, hayes<<< hayes のみに一致し、london と hayes の両方には一致しません。

4

1 に答える 1

0

2 つの単語の少なくとも 1 つを含む行を検索してみてください。

     AGAINST ('+hayes +London' IN BOOLEAN MODE) 

両方の単語を含む行を見つけたい場合は、これを使用します

    AGAINST ('+hayes London' IN BOOLEAN MODE) 

編集:

UPDATE table
SET COLUMN1 =
        'HAYES'
 WHERE
  COLUMN1
 LIKE
    '%hayes%';

より多くのキーワードがそのように使用されている場合

   UPDATE table
   SET COLUMN1 =if(
    COLUMN1 LIKE '%hayes%', 'HAYAS', if( 
    COLUMN1 LIKE '%derby%' ,'DERBY' , if(
    COLUMN1 LIKE '%wawwaw%' ,'WAWAWA', Column1)))
于 2013-03-04T12:37:37.347 に答える