2016-10-07 7 views
0

MySQLでは、列a(行2)を列c(行1)から列b(行1)に等しい数の行にしたいとします。私がこれまでのやり方を理解する唯一の方法は、行= 1のc-bを実行する新しい列dを作成することです。問題は、これを何度もやらなければならず、これはあまり効率的ではないことです。Mysqlループステートメントは他の2つの違いを参照します

これを行う最善の方法についてのガイダンスをお読みいただきありがとうございます。

create table example (row int not null, a int not null, b int not null, c int not null); 
insert into example (row,a,b,c) (1,2,5,20) (2,15,18,72) (3,54,57,228); 
+0

行番号は連続していることが保証されていますか? – Barmar

+0

適切な場所に 'VALUES'キーワードとカンマを含めるようにmysqlコードを編集してください –

答えて

0

行番号が連続している場合は、n+1を行ごとにnを関連付けるために自己結合を使用することができます。

UPDATE example AS e1 
JOIN example AS e2 ON e1.row = e2.row + 1 
SET e1.a = e2.c - e2.b 
+0

Barmar、これは完璧です。ありがとうございました! – tag17

関連する問題