我有 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更新,但它给出了:
Error Code: 1054. Unknown column 'espece.name' in 'where clause'
我做错了什么?
最佳答案
您需要加入:
UPDATE animal AS a
JOIN espece AS e ON a.espece LIKE concat('%', e.name, '%')
SET a.espece_id = e.id
关于mysql - 使用 like 和 concat 更新列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24238358/