我有2个SQL表 表名:代理包含一个coloumn一个记录AGENTIDMySQL查询搜索所有记录对场逗号分隔值
表命名为:空缺是一个与数据正在显示。 表命名空缺具有包含值simmilar这个
VacanyID Company position CTC Candidates Agents
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
FBVAC001 | HDFC | Branch Manager | 4.5 | FBCAN001,FBCAN002| Agent3,Agent4
FBVAC003 | TBNH | Branch Manager | 4.5 | FBCAN004,FBCAN005| Agent2,Agent4
FBVAC005 | MMNT | Branch Manager | 4.5 | FBCAN008,FBCAN006| Agent3
FBVAC008 | LCFC | Branch Manager | 4.5 | FBCAN009,FBCAN023| Agent3,Agent4
FBVAC008 | KOTC | Branch Manager | 4.5 | FBCAN009,FBCAN023| Agent5,Agent4
我想运行一个查询,将返回只有那些包含从表名代理相当于agents.AgentID该值的记录vacancies.Agents。这是目前为止的查询,但它所反转的是那些空位中没有超过一个值的记录。例如,如果正在搜索的值是Agent3,则它应该返回行1,3和4,而不是返回第3行。
SELECT
vacancies.VacancyID,
vacancies.Company,
vacancies.`Position`,
vacancies.CTC,
vacancies.Candidates,
vacancies.Agents
FROM vacancies
, agents
WHERE (FIND_IN_SET(vacancies.Agents,agents.AgentID) <> 0)
这怎么解决?
我倒过来试了一下,但它只是显示了所有的行以及每行的重复项。 – 2012-04-12 13:59:10
如果你只想要'Agent3',你还需要搜索那个'和AgentID ='Agent3''。查看我对该帖子的更新。 – mellamokb 2012-04-12 14:00:57
我提到了agent3作为一个运行时的例子。我实际上想根据表代理中的列AgentID进行检查。 – 2012-04-12 14:02:39