以逗号分隔列表中的搜索字符串

时间:2012-11-08 01:35:30

标签: php mysql regex search comma

我正在尝试搜索一份不含任何搜索条件的食谱表。每个食谱的成分存储在一个字段中,以逗号分隔。

我尝试过使用WHERE NOT MATCH ... AGAINST但是在搜索Peas的情况下这不起作用。它将返回含有豌豆蛋白的结果。我不需要那样做。这也是多元化的问题。

我尝试使用NOT REGEXP,但我对正则表达式并不太熟悉,而且我在过去两天所做的所有谷歌搜索都没有产生结果。

我有什么方法可以在此表中搜索此字段中的多个值并将其排除在结果中?

1 个答案:

答案 0 :(得分: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)

我有点喜欢这样做'对'你需要每种成分的元数据

或者你也有适用于食谱的过敏原'标签' - 与成分本身分开。

例如,如果有人对'麸质'过敏,那实际上并不是食谱中的成分。它是许多配方成分的财产......

这种方法需要您编制所有已知过敏原的列表,然后将它们应用于食谱,不确定您的背景,但过敏原标记可以作为分类任务。