csv字段匹配在哪里

问题描述 投票:0回答:1

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

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

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

php mysql sql
1个回答
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

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

© www.soinside.com 2019 - 2024. All rights reserved.