我正在尝试构建一个包含公司所有可能值/关键字的搜索表。
桌子:
id, company_id, value
1 2 grocery store
2 3 mall something
3 2 grocery
4 2 mall
*其中 company_id 是公司表的外键。
我正在尝试查找具有特定部分值的公司 id,例如在上表中,我希望公司的值都像 '%grocery%' 和 '%mall%' ,在这种情况下,公司 2 应该返回,但公司的 id 3 不应该。我得到的关闭查询是:
select company_id from search where (value LIKE 'grocery' OR value LIKE 'mall') group by company_id having count(distinct value) = 2;
这几乎对我有用,除了我需要使用 like '%grocery%' (w/ %) 来查找部分匹配项,但是如果我使用 % 运算符,查询不会给我任何结果。我相信这是因为你不能按部分匹配分组?
我将不胜感激有关如何解决此问题的任何指示或提示。
非常感谢!