我在一个类别字段中有csv例如1,3,5我希望与表中的其他类别匹配说(1,2,3,4),此时它使用的是cluase但是当有多个类别时,这不起作用。
Job.jobcategory_alias in (SELECT p_alias FROM job_categories WHERE p_id = 10225 or p_parent_id = 10225 or p_id = 10237 or p_parent_id = 10237)
如果jobcategory_alias只有一个像1这样的值,那么它会起作用,但是如果它有两个值,比如1,2逗号分隔,则会失败。
我无法改变数据库的结构。
如何编写查询以匹配多个类别?
答案 0 :(得分:0)
使用find_in_set()
:
find_in_set(Job.jobcategory_alias,
(SELECT p_alias
FROM job_categories
WHERE p_id IN (10225, 10237) OR p_parent_id IN (10225, 10237)
)
) > 0
这假定子查询最多返回一行。