我有2个表,'contacts'和'job_titles'。在“联系人”表格中有一个名为“位置”的字段。如果'position'字段的值与'job_titles'表中的'title'字段类似,并且我已经来到新'job_titles'表,我想更新'contacts'表中名为'job_title_id'的字段越过障碍。子查询返回多于一行LIKE&CONCAT与通配符
因为位置字段是自由文本字段,我们的值可以是:这样一个公司
而且,我们可能在“标题”字段
- 服务交付经理在 'job_titles' 表中的值,如:
- 服务交付经理
- IT服务交付MANAG呃
- 高级服务交付经理
所以,当我运行下面的查询,我得到一个“子查询返回超过1行”的错误。
UPDATE contacts SET job_title_id = (SELECT id FROM job_titles WHERE job_titles.title LIKE CONCAT('%', contacts.position, '%') );
有没有一种方法可以运行通配符查询,就像我上面会做我所需要的?谢谢。
当存在多行时,您希望返回哪个匹配项? – 2014-11-05 12:49:06
可能是通用值,如服务交付管理器。 – 2014-11-05 12:50:08