更新时子查询返回多行

时间:2016-03-29 12:20:07

标签: php mysql

我正在编写一个简单的SQL查询来更新我的表。

这是我的代码

$qry = mysql_query("update product set cat_tree =(select cat_name from cat_details where product.category = cat_details.cat_id )");

当我试图运行此代码时,它会给出错误消息

  

#1242 - 子查询返回多于1行

有什么问题?我试过很多像“IN”“ANY”这样的解决方案。但是所有示例都仅用于插入查询。

提前致谢

3 个答案:

答案 0 :(得分:0)

试试这个

XCTFail()

答案 1 :(得分:0)

你应该像这样试试LIMIT ......

$qry = mysql_query("update product set cat_tree =(select cat_name from cat_details where product.category = cat_details.cat_id LIMIT 1)");

答案 2 :(得分:0)

您正在寻找的是带有JOIN(Ref)的UPDATE查询:

UPDATE product AS p 
  JOIN cat_details AS c
  ON p.category = c.cat_id 
SET p.cat_tree = c.cat_name;