我一直在阅读并尝试很多类似问题的答案。 我需要使用表品牌中的字段名称内容更新表测试字段品牌。 我这样做是为了检查需要更新的字段:
SELECT brand.name,test.`1_name`
FROM test INNER JOIN brand
ON test.`1_name` LIKE CONCAT('%',brand.name,'%')
上面给出了 32000 条记录的结果。 我尝试在更新中使用该选择
UPDATE `test` SET brand=(....)
但无法让它工作。
最佳答案
试试这个:
UPDATE `test` SET brand=(SELECT brand.name FROM test INNER JOIN brand ON test.`1_name` LIKE CONCAT('%',brand.name,'%'))
您发布的查询返回数据集合 (SELECT Brand.name,test.1_name
...),
SET Brand = ` 需要一个标量值。
换句话说,确保您的查询仅返回一个结果。
关于mysql 使用其他表中的数据更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20024670/