我有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.espece
和espece.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