tblという名前のテーブルがあると仮定しましょう:
id | field1 | field2
--------------------------------
1 | 6 | 4
50 | 10 | 12
13 | 41 | 39
あなたの質問に対するSQLクエリ:
$sql = "SELECT field1, field2 FROM tbl WHERE field1 = '$id' OR field2 = '$id'";
変数$idが値"1" suchを保持する場合$id = 1;
、結果は次のようになります。
MySQL returned an empty result set (i.e. zero rows).
ここで、属性field1の値が"6"で、属性field2の値が"39"の場合、結果は次のようになります。
id | field1 | field2
--------------------------------
1 | 6 | 4
13 | 41 | 39
しかし、SQL クエリが次のような場合:
$sql = "SELECT field1, field2 FROM tbl WHERE id = '$id'";
変数$idが値"0"を保持している場合、結果は次のようになります。
id | field1 | field2
--------------------------------
50 | 10 | 12
その行の属性idの値「50」にゼロ「0」があるためです。
さて、このテーブルにあるもののように(field1 + field2)を合計しますか?
id | sum(field1+field2)
-----------------------------
1 | 10
50 | 22
13 | 80
では、SQL クエリに次のような複数のOR
演算子があるということですか。
$sql = "SELECT field1, field2 FROM tbl WHERE field1 = '$field1' OR field2 = '$field2' OR field1 = '$field3'";
またはこれ:
$sql = "SELECT field1, field2 FROM tbl WHERE id = '$id1' OR id = '$id2' OR $id = '$id3'";
あなたの質問はどういう意味ですか?
値がデータに一致する属性field1または属性field2を持つすべての行の合計(field1 + field2)が必要であると仮定します。
$sql = "SELECT id , ( field1 + field2 ) AS `sum(field1+field2)` FROM tld WHERE field1 = '$field1' OR field2 = '$field2'";
変数$field1が値「6」を保持し、変数$field2が値「39」を保持する場合、表の結果は次のようになります。
id | sum(field1+field2)
-----------------------------
1 | 10
13 | 80
一番上にあると仮定したテーブルデータを検討してください!"6"の値を持つ field1 は "4" である field2の値に関係があるため、(6 + 4)の合計は 10 です。そして、(field1 の値 41 + field2 の値 39) の合計は 80 です。属性sum(field1+field2)の行で述べたように、 (10 + 80)を合計しますか? MySQL を使用している場合は、次のように PHP スクリプトを使用して処理できます。
<?php
$connection = mysqli_connect($host, $user, $password, $database);
$sql = "SELECT id , ( field1 + field2 ) AS `sum(field1+field2)` FROM tld WHERE field1 = '$field1' OR field2 = '$field2'";
$result = mysqli_query($connection, $sql);
while($row = mysqli_fetch_array($result)) {
$sum += $row['sum(field1+field2)'];
}
echo 'The sum is: ' . $sum;
?>
それが機能するかどうかをテストできます..