使用like和concat更新列

时间:2014-06-16 07:15:10

标签: mysql

我有两张桌子:动物和espece(fr ='物种')。 在动物中我有一个名为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" "欧亚sheperd狗"这就是我尝试在此更新中使用LIKE的原因,但它给出了:

  

错误代码:1054。未知栏' espece.name'在' where子句'

我做错了什么?

1 个答案:

答案 0 :(得分:1)

你需要一个加入:

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