更新MySQL查询错误“子查询返回超过1行”
我正在尝试实现此查询,但出现了一个错误:更新MySQL查询错误“子查询返回超过1行”,mysql,subquery,Mysql,Subquery,我正在尝试实现此查询,但出现了一个错误: UPDATE ps_product_lang SET name=(select name from ps_product_lang_backup where id_lang=2) WHERE id_lang = 3 但是我得到了子查询返回的不止一行 也许我必须使用JOIN,但我对MySQL还很陌生,自己也做不到 我想做的很简单:我的数据库中有3种语言,希望将数据从一种语言(英语id_lang 2)复制到另一种俄语id_lang 3)中粘贴。这意味着您的
UPDATE ps_product_lang
SET name=(select name from ps_product_lang_backup where id_lang=2)
WHERE id_lang = 3
但是我得到了子查询返回的不止一行
也许我必须使用JOIN,但我对MySQL还很陌生,自己也做不到
我想做的很简单:我的数据库中有3种语言,希望将数据从一种语言(英语id_lang 2)复制到另一种俄语id_lang 3)中粘贴。这意味着您的SELECT查询返回两个以上的结果
SET name=(select name from ps_product_lang_backup where id_lang=2 LIMIT 1)
我假设该表还有一个product_id列,该列对于产品是唯一的 您需要告诉数据库为同一产品选择英文名称
我会尽力回答这个问题 查看您的查询后,很明显,从id_lang=2的ps_product_lang_备份中选择名称会有不止一个结果,这就是导致错误的原因。现在,要解决这个问题,你可以做两件事 您可以删除一条id相同的记录 或者,您可以按如下方式更改子查询:
UPDATE ps_product_lang SET name=(select name from ps_product_lang_backup where id_lang=2 LIMIT 1) WHERE id_lang = 3
从ps_product_lang_备份中选择名称,其中id_lang=2限制1
这将更改您的查询,如下所示:
UPDATE ps_product_lang SET name=(select name from ps_product_lang_backup where id_lang=2 LIMIT 1) WHERE id_lang = 3
希望此帮助您需要提供有关ps_product_lang的更多信息。是的,您假设正确,这里的每个人都给了我正确的解决方案:感谢每个人,这不是解决方案。用户希望通过另一个表更新多行我试图解决错误,而不是向他提供整个解决方案