查询更新选择不起作用?

时间:2013-08-04 15:39:15

标签: php mysql

此查询不适用于版本为5.1的MySQL,但在最新版本的MySQL(5.5)上运行。

Update furni T1 Set T1.user_id  = (SELECT T2.user_id FROM furni_items T2 where T2.item_id = T1.id) ;

如何在MySQL 5.1上进行查询?

3 个答案:

答案 0 :(得分:1)

一个猜测是子查询可能返回多行。您可以使用limit只获得1:

来解决此问题
Update furni T1
    Set T1.user_id  = (SELECT T2.user_id FROM furni_items T2 where T2.item_id = T1.id limit 1) 

答案 1 :(得分:0)

使用join

    Update furni T1 
    INNER JOIN furni_items T2
    ON T2.item_id = T1.id
    Set T1.user_id  =  T2.user_id  ;

答案 2 :(得分:0)

我猜一些SQL在相关更新上的工作方式不同。试试这个没有连接语法,而是通过where子句。

Update furni t1, furni_items t2
   Set t1.user_id = t2.user_id
  Where t1.id = t2.item_id