更新具有不同条件的多行

时间:2013-03-01 09:52:43

标签: mysql sql-update

我在这里发现了很多类似的问题,但很遗憾再次提出这个问题,因为我无法了解如何根据我的情况实施这些问题。

这里是我的

$upd = "UPDATE users SET friend_requests=CONCAT(friend_requests, ' $_GET[user]') WHERE uid='$_SESSION[uid]', ";
$upd = mysql_query($upd) or die(mysql_error());

$upd = "UPDATE users SET friends_waiting=CONCAT(friends_waiting, ' $_SESSION[uid]') WHERE uid='$_GET[user]'";
$upd = mysql_query($upd) or die(mysql_error()); 

如何只在一个查询中更新行?

1 个答案:

答案 0 :(得分:1)

UPDATE users 
  SET friend_requests=
    CASE
        WHEN uid='$_SESSION[uid]' THEN CONCAT(friend_requests, ' $_GET[user]')    
        ELSE friend_requests
        END,
      friends_waiting=
    CASE 
        WHEN uid='$_GET[user]' THEN CONCAT(friends_waiting, ' $_SESSION[uid]')    
        ELSE friends_waiting
        END
  WHERE uid IN ($_GET[user], $_SESSION[uid])