Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/image/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MySQL:比较同一个表中两个不同列的值_Mysql - Fatal编程技术网

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

MySQL:比较同一个表中两个不同列的值,mysql,Mysql,我想在MySql中比较一个表中两个列的值,并在results函数中更新另一个列。值位于同一行上 例如: 如果值列A>值列B==>列C=“播放者1” 如果值列A列C=“player2” 我怎么能这么做 比如: 更新表格集合col C=“player1”,其中 编辑: 所以我只是试着用CASE UPDATE partie SET col C = CASE WHEN Col A > Col B THEN 'player1' WHEN Col A < Col B THEN 'pl

我想在MySql中比较一个表中两个列的值,并在results函数中更新另一个列。值位于同一行上

例如:

如果值列A>值列B==>列C=“播放者1”

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

我怎么能这么做

比如: 更新表格集合col C=“player1”,其中

编辑:

所以我只是试着用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 .... ;
updatepartie SET col C=
案例
当A列>B列时,则为“player1”
当A列
在Mysql中正确吗


非常感谢

请在两个不同的查询中执行此操作:

UPDATE table SET C = 'player1' WHERE a > b;
UPDATE table SET C = 'player2' WHERE a < b;
请注意:

  • 当a=b时,您希望发生什么
  • 如果不进行进一步过滤,以上所有操作都将进行全表扫描,因此对于大型表来说非常重要
    • 类似这样的东西

      <?php
      if ($Cola > $Colb){
      UPDATE $tableName SET ColC = "player1";
      }
      else{
      UPDATE $tableName SET ColC = "Player 2";
      }
      ?>
      
      
      
      大概玩家1和玩家2在不同的行上?COL A、B、C的值在同一个行上,php从哪里来?这将基于对一行的测试设置表中的每一行。不是我-你是谁,但我可以理解他们为什么这样做。我只是用php做的,任何语言都可以这样做。除了mysql,他没有说他在用什么语言。这是一个如何设置它的示例。。。显然,他知道在哪里,因为他没有提到这些,那么我怎么知道在哪里呢?听起来好像是一排一张桌子。。。正如他之前提到的,这是一行cola colb colc等。执行查询的语言是sql,除非您按照ORM路线进行操作,并且OPs基于每一行对每一行进行更新。即使您使用ORM以任何语言在客户端执行此类查询也不是一个好主意。做得好,我忘记了a=b的情况,但我想我会找到的!如果我想在需要放置和的位置添加一个条件?对吗?对,放一个“和一些条件,这些条件成立”。当然,您可以嵌套
      IF
      语句,或者使用
      CASE
      语句。看起来更整洁。。。你能告诉我它是否正确吗?ty@user2971617 . . .
      case
      是标准SQL,所以我更喜欢它。但是,就功能而言,
      case
      if
      在这种情况下是相同的。所以,
      case
      可以。@user2971617双向都可以
      <?php
      if ($Cola > $Colb){
      UPDATE $tableName SET ColC = "player1";
      }
      else{
      UPDATE $tableName SET ColC = "Player 2";
      }
      ?>