csv字段匹配在哪里

时间:2017-12-19 03:31:55

标签: php mysql sql

我在一个类别字段中有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逗号分隔,则会失败。

我无法改变数据库的结构。

如何编写查询以匹配多个类别?

1 个答案:

答案 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

这假定子查询最多返回一行。

相关问题