我有如下表(recipe_categories)结构
recipe_id sub_category_id
1 2
1 3
1 5
2 3
2 5
3 2
3 5
我sub_category_id从 API 获取(它是逗号分隔的),我想要recipe_id哪个都给出了 sub_category_id
示例:1)如果用户sub_category_id在 API 中传递 3,5 所以配方 id 1 和 2 有 sub_category_id 3 和 5 这里recipe_id3 将被忽略,因为它只有sub_category_id5 而不是 3 所以结果是recipe_id1 和 2
2)如果用户通过sub_category_id2,3,5 所以结果只有recipe_id1
使用 PHP,我尝试分解 id 并创建 MySQL 查询,如下所示,它正在工作:
SELECT * FROM
( SELECT *,GROUP_CONCAT(sub_category_id) as
subcat FROM `recipe_categories` group by recipe_id
ORDER BY `id` DESC )
as a where find_in_set('5',subcat)
and find_in_set('6',subcat) and find_in_set('7',subcat)
在这里,使用 for 循环我做了多个 find_in_set
所以我的问题是,有没有更好的方法可以直接从 MySQL 查询中找到预期结果,而无需使用 PHP 创建查询。
紫衣仙女
红糖糍粑