我有2个表格:animal和espece(fr ='species')。
在动物中,我有一个名为espece_id的列,我想在其中使用espece.id(主键)填充数据,然后尝试执行以下操作:

UPDATE animal
SET espece_id = espece.id
WHERE espece LIKE concat('%', espece.name, '%');


表格详情:

animal: id, espece, espece_id
espece: id, name, scientific_name


animal.especeespece.name在某种程度上等于:“ dog”“欧洲牧羊犬”,所以这就是为什么我尝试在此更新中使用LIKE,但是给出了:


  错误代码:1054。“ where子句”中的未知列“ espece.name”


我究竟做错了什么?

最佳答案

您需要加入:

UPDATE animal AS a
JOIN espece AS e ON a.espece LIKE concat('%', e.name, '%')
SET a.espece_id = e.id

08-07 16:29