gpt4 book ai didi

MySQL 查询以用逗号分隔值搜索针对字段的所有记录

转载 作者:可可西里 更新时间:2023-11-01 07:35:45 24 4
gpt4 key购买 nike

我有2个sql表表名:agents 包含一列 AgentID 的记录

名为:vacancies 的表是显示数据ans 的表。名为 vacancies 的表有 vacancies.Agents,其中包含与此类似的值

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)

如何解决?

最佳答案

我相信您在 FIND_IN_SET 中设置了反向参数。集合应该排在第二位

FIND_IN_SET(agents.AgentID, vacancies.Agents)

更多信息:http://www.bitbybit.dk/carsten/blog/?p=162


此外,如果您只想查看特定代理,则还需要对其进行过滤,否则您将获得代理和匹配职位空缺的所有可能组合(因此出现重复行):

AND Agents.AgentID = 'Agent3'

演示:http://www.sqlfiddle.com/#!2/b4dcb/3

关于MySQL 查询以用逗号分隔值搜索针对字段的所有记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10124972/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com