在我的表中有一个名为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/

10-11 10:31