gpt4 book ai didi

mysql - 子查询返回超过 1 行 LIKE & CONCAT 与通配符

转载 作者:行者123 更新时间:2023-11-29 01:21:12 24 4
gpt4 key购买 nike

我有 2 个表,'contacts' 和 'job_titles'。在“联系人”表中有一个名为“职位”的字段。使用新的“job_titles”表,如果“position”字段值与“job_titles”表中的“title”字段相似,我想更新“contacts”表中名为“job_title_id”的字段,我来了越过障碍。

因为位置字段是一个自由文本字段,我们可以有如下值:

  • 此类公司的服务交付经理

此外,我们可能在“job_titles”表的“title”字段中有如下值:

  • 服务交付经理
  • IT 服务交付经理
  • 高级服务交付经理

因此,当我运行以下查询时,出现“子查询返回超过 1 行”错误。

UPDATE contacts 
SET job_title_id =
(SELECT id
FROM job_titles
WHERE job_titles.title LIKE CONCAT('%', contacts.position, '%')
);

有没有一种方法可以像上面那样运行通配符查询来满足我的需要?谢谢。

最佳答案

以下内容将匹配最短 标题,假设它更通用:

UPDATE contacts c
SET job_title_id = (SELECT id
FROM job_titles jt
WHERE jt.title LIKE CONCAT('%', c.position, '%')
ORDER BY char_length(jt.title)
LIMIT 1
);

关于mysql - 子查询返回超过 1 行 LIKE & CONCAT 与通配符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26757504/

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