2011-01-31 18 views
1

私はnumPears(int)とnumApples(int)の2つのフィールドを持つmysqlテーブルを持っており、これら2つの値を自動的に取得して合計するnumFruit(int)を持っていたいと思います。それは可能ですか?2つのフィールドの合計

クエリその後、

INSERT INTO strange_table (fruitID, numPears, numApples) VALUES (1, 1, 5); 

そしてそれは6私を返し

SELECT numFruit FROM strange_table WHERE fruitID = 1; 

を照会するように。

答えて

2

新しい行がDBに入るたびに静的な値を作成する場合は、トリガーを使用します。 http://dev.mysql.com/doc/refman/5.0/en/create-trigger.htmlを参照してください。特に、挿入と更新時にトリガーが発生します。

- 質問を明確にしました。私はストアドプロシージャが今あなたが探しているものより多くあると思います!

http://dev.mysql.com/doc/refman/5.0/en/create-procedure.html

これは、MySQLは、他の2つの列の合計を返しますnumFruitと呼ばれる内部では、関数を作成することができます。

2
SELECT (numPears + numApples) AS numFruit FROM strange_table WHERE fruitID = 1; 
+0

また、SQL文で他のものを選択することはできますか? – Shoe

+0

はい、「numFruit」の後にカンマを追加し、取得したい列を追加してください: - SELECT(numPears + numApples)AS numFruit、numPears、numApples FROM strange_table WHERE fruitID = 1; – Purpletoucan

+0

これはひねりの質問の答えであるため、これを受け入れられた回答として選択できません。しかしそれは非常に有用であった。 +1 – Shoe

0

あなたがPHP

$pears = 5; 
$apples= 1; 

$query = "INSERT INTO strange_table (fruitID, numPears, numApples, numFruit) VALUES (1, $pears, $apples, " . ($pears + $apples) . ")"; 
+0

私の場合は、2つの 'numPears'と' numApples'が確実に別々に更新されるので、 'numFruit'フィールドも選択して少なくとも1つのクエリを使って再度更新してください。 – Shoe

0

を使用している場合、MySQLは現在、それらをサポートしていますようにそれは見えない「計算列」何のことをいっていると呼ばれています。

関連する問題