id val1 val2 total 1 10 4 10-4(自動的に値を取得) 。 。 。 。
私はphpとmysqlを使用しています。フィールドで自動的に計算する必要がある合計列がありますが、どのように実行できますか?
この要件があなたにとって非常に重要である場合は、見てください ここ -MariaDBの計算フィールド-計算を実行する必要はありません-それはすべてあなたのために行われます!指摘したように、いつでも計算を実行できます。
このクエリを使用
select id, val1, val2, val1 - val2 as total
from table_name;
トリガーを使用してみてください。
挿入val1
およびval2
ストアドプロシージャを使用します。
「挿入後」トリガーを記述して、列間の差異として3番目の列を更新しますval1
およびval2
。
これを試して、
CREATE TABLE TestDiff (
Id INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,
Val1 INT(11) NOT NULL,
Val2 INT(11) NOT NULL,
Total INT(11) DEFAULT NULL,
PRIMARY KEY (Id)
);
INSERT INTO TestDiff(Val1, Val2)
VALUES(100, 10), (160, 30), (140, 50), (180, 68);
UPDATE TestDiff
SET Total = (Val1 - Val2);
特定のIDで更新したい場合は、以下のような条件を置くことができます
UPDATE TestDiff
SET Total = (Val1 - Val2)
WHERE Id = 3 ;