MySQL:比较同一个表中两个不同列的值
我想在MySql中比较一个表中两个列的值,并在results函数中更新另一个列。值位于同一行上 例如: 如果值列A>值列B==>列C=“播放者1” 如果值列A<值列B==>列C=“player2” 我怎么能这么做 比如: 更新表格集合col C=“player1”,其中 编辑: 所以我只是试着用CASEMySQL:比较同一个表中两个不同列的值,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
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";
}
?>