MySQL:比较同一个表中两个不同列的值

时间:2014-01-18 18:10:09

标签: mysql

我想比较单个表中两个列的值,并在MySql中更新结果函数中的另一个列。值在同一行。

示例:

如果值COL A>值Col B ==> Col C =“player1”

如果值COL A<值Col B ==> Col C =“player2”

我怎么能这样做?

像: UPDATE表SET col C =“player1”WHERE ...

编辑:

所以我只试用CASE ......

UPDATE partie SET col C =  
CASE
  WHEN Col A > Col B THEN 'player1'
  WHEN Col A < Col B THEN 'player2'
  ELSE 'deuce' 
END
WHERE .... ;

在Mysql中是否正确?

非常感谢

2 个答案:

答案 0 :(得分:2)

要么在两个不同的查询中这样做:

UPDATE table SET C = 'player1' WHERE a > b;
UPDATE table SET C = 'player2' WHERE a < b;

或尝试这一个班轮:

UPDATE table SET C = IF(a > b, 'player1', 'player2')

请注意:

  • 当a = b?
  • 时,您想要发生什么?
  • 如果不进行进一步过滤,上述所有内容都将进行全表扫描,因此对于大型表来说非常重要。

答案 1 :(得分:-1)

像这样的东西

<?php
if ($Cola > $Colb){
UPDATE $tableName SET ColC = "player1";
}
else{
UPDATE $tableName SET ColC = "Player 2";
}
?>