MySQL的更新行与同一表中的另一行值(Mysql update a row with anothe

2019-09-17 18:35发布

我有一个表。 我想从同一个表第10行的值更新的第5行。 例如:

SlNo   Name Quali   Exp
1        x   B.E     2
2        y   BSC     3
3        Z   B.A     1.5
4        A   MSC     2
5        B   MBA     5

在这里,我想用第5行的值更新第二行。

这里是我当前的查询:

    UPDATE table 
      SET Name=(select Name from table where slNo='5'),
               Quali=(select Quali from  table where slNo='5'),
               Exp=(select Exp from table where slNo='5') 
      where slNo='3';

这是工作的罚款...但如果有超过20列变得费力这种方式编写一个查询,因为每个专栏中,我必须包括另一个子查询...是否有任何其他方式来编写查询来更新整行与其他行中的同一表中的所有值?

Answer 1:

与多台使用自联接UPDATE语法:

UPDATE `table` AS t1 JOIN `table` AS t2 ON t2.slNo = 5
SET    t1.Name = t2.Name, t1.Quali = t2.Quali, t1.Exp = t2.Exp
WHERE  t1.slNo = 3


文章来源: Mysql update a row with another row value in same table
标签: php mysql mysqli