私信  •  关注

Nick Nina Scholz

Nick Nina Scholz 最近创建的主题
Nick Nina Scholz 最近回复了
5 年前
回复了 Nick Nina Scholz 创建的主题 » MySQL获取多个raw的交集

通过计算匹配的数量,您可以用一种通用的方式(只需要将逗号分隔的字符串作为参数传递)实现此功能 sub_category_id (使用 FIND_IN_SET 要找到它们)并将其与字符串中的值的数目(可以通过从原始长度中减去逗号的长度来确定)进行比较:

SELECT recipe_id
FROM recipe_categories
WHERE FIND_IN_SET(sub_category_id, '2,3,5')
GROUP BY recipe_id
HAVING COUNT(DISTINCT sub_category_id) = LENGTH('2,3,5') - LENGTH(REPLACE('2,3,5', ',', '')) + 1

输出(用于示例数据)

recipe_id
1

Demo on dbfiddle