0

材料に検索語が含まれていないレシピの表を検索しようとしています。各レシピの材料は、コンマで区切られた1つのフィールドに保存されます。

WHERE NOT MATCH ... AGAINSTを使用してみましたが、Peasを検索する場合などは機能しません。エンドウ豆タンパク質を含む結果が返されます。私はそれを持っている必要はありません。これも複数化の問題です。

NOT REGEXPを使用してみましたが、正規表現にあまり詳しくなく、過去2日間に行ったすべてのグーグルで結果が得られませんでした。

このテーブルのこのフィールドで複数の値を検索し、結果から除外する方法はありますか?

4

1 に答える 1

1

MATCH ...AGAINST...の演算子を確認してください。

私はあなたが探しているものは次のとおりだと思います:

WHERE MATCH(ingredients) AGAINST ("-pea*" in boolean mode)

例:

pea protein,radish
// not returned (as desired)

peas,beans
// not returned (as desired)

しかし、まだ問題があるかもしれません:

peanut butter,bacon
// not returned (not as desired)

green pea soup,bacon
// returned (not as desired)

私はこれを「正しく」行うような気がします。各成分のメタデータが必要になります。

または、代わりに、レシピに適用するアレルゲンの「タグ」があります-材料自体とは別に。

たとえば、誰かが「グルテン」にアレルギーがある場合、それは実際にはレシピレベルの成分ではありません。それは多くのレシピ材料の特性です...

このアプローチでは、すべての既知のアレルゲンのリストを編集してからレシピに適用する必要があります。コンテキストはわかりませんが、アレルゲンのタグ付けはフォークソノミーのタスクとして機能する可能性があります。

于 2012-11-08T03:26:41.953 に答える