私の MySQL セットアップの列は favColors と呼ばれます。これは、各ユーザーの favColors を含む JSON 文字列を保存する単なる VARCHAR 列です。ものすごく単純。
これがユーザー A だとしましょうfavColors
:
["red","green","cyan","silver","gold"]
そして、これはユーザー B のfavColors
:
["pink","green","blue","brown","yellow"]
そして、これはユーザー C のfavColors
:
["tan","green","blue","brown","yellow","violet"]
また、ユーザー B はクエリを実行して、同じ色を共有する他のユーザーを見つけたいと考えています。しかし、私はベストマッチを見つけることに興味があります。
このようなものを使用できると思います...
WHERE MATCH (favColors) AGAINST ('$userBsJSONString' IN BOOLEAN MODE)
しかし、どの行が最も多く一致したかによって結果を並べ替え、一致した色を知りたいと思います。
だから基本的には、「ねえ、あなたたち二人とも「緑」、「青」、「茶色」、「黄色」が好き!
この情報を返すことができるクエリを実行する最善の方法は何でしょうか?