我正在尝试搜索不包含任何搜索词的食谱表。每个配方的成分存储在一个字段中,以逗号分隔。
我试过使用 WHERE NOT MATCH...AGAINST 但这在我搜索豌豆时不起作用。它将返回带有豌豆蛋白的结果。我不需要那个。这也是多元化的问题。
我尝试使用 NOT REGEXP,但我对正则表达式不太熟悉,而且我过去两天所做的所有谷歌搜索都没有产生结果。
有什么方法可以在此表中的该字段中搜索多个值并将它们排除在结果中吗?
查看 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)
我有点想“正确”地做这件事,你需要每种成分的元数据。
或者,您可以将过敏原“标签”应用于食谱——与成分本身分开。
例如,如果有人对“麸质”过敏,那实际上并不是配方级别的成分。它是许多配方成分的属性,但...
这种方法需要您编制所有已知过敏原的列表,然后将它们应用于食谱,不确定您的上下文,但过敏原标记可以作为一项民俗学任务。