テーブル「wordlist」があり、各単語にスコアが割り当てられています:1または-1のいずれか。
id | name | val
1, 'hello', 1,
2, 'world', -1
3, 'test', 1,
...
また、テキストを含むテーブル「texts」があります。
id | text | score
1, 'hello world', 0
2, 'Lorem Ipsum Dolor Sit Amet...', 0
...
次のルールを使用して、テーブル「texts」のフィールド「score」を更新したいと思います。
スコア=sum(wordlist.val)ここで、文の各単語は単語リストに存在します。
私はこの方法を試しましたが、機能していません:
update texts as t set score=(select sum(val) from wordlist where word in (concat('\'', replace(t.text,' ','\',\''),'\'')))
処理するデータが50万行を超えているため、PHPを使用せずにMySQLのみを使用したいと思います。
解決策があれば事前に感謝します!
MySQLにexplode()関数があればいいのにと思います!