在我的表中有一个名为agency_ids
的字段。它将具有逗号分隔的字符串值,如下所示。a0001, a0002
一个或多个代理ID可以包含每个记录。
现在我需要使用给定的代理ID搜索表。
如果我给出1235,它应该返回上面显示的两行。如果我给A1234,它应该只返回A1234行。
我该怎么做?我试过agency_ids IN ('a1234')
和FIND_IN_SET
但没用。
完整查询-
SELECT ov.*,c.name as company_name
FROM (SELECT v.vacancy_id,v.company_id,v.designation,v.job_ref_number
FROM `t2o_vacancies` AS v
WHERE `opening_date` <= '2014-01-27'
AND `closing_date` >= '2014-01-27'
AND posting_type= 'Agency'
AND agency_ids IN ('a1234')
ORDER BY v.opening_date DESC ) AS ov
LEFT JOIN t2o_companies AS c ON ov.company_id = c.id
最佳答案
尝试使用like
and agency_ids like '%a1235%'
而不是使用
IN
AND agency_ids IN ('a1234')
in
允许您指定多个值,但它不会将a1234,a1235
视为两个不同的值。关于php - 过滤MySQL逗号分隔字段,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21376540/