讓我們假設我們有一個名爲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」等$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闕RY是這樣這樣的:
$sql = "SELECT field1, field2 FROM tbl WHERE id = '$id'";
和變量$ ID持有價值「0」,那麼結果將是:
id | field1 | field2
--------------------------------
50 | 10 | 12
因爲有一個「0」零的值爲「50」的屬性id,在該行上。
現在,你要總結(字段1 +域2)像什麼在這個表:
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'";
對於你的問題,你是什麼意思?
我只是假設你要總結(字段1 +域2)所有具有屬性FIELD1或屬性場2行的是那對他們的數據相匹配的值:
$sql = "SELECT id , (field1 + field2) AS `sum(field1+field2)` FROM tld WHERE field1 = '$field1' OR field2 = '$field2'";
表結果將類似於下,如果變量$ FIELD1持有「6」值和變量$域2持有「39」值:
id | sum(field1+field2)
-----------------------------
1 | 10
13 | 80
考慮我們的假設表的最頂端的數據!因爲FIELD1與的值「6」對的FIELD2是「4」值的關係,因此的(6 + 4)是10並且總和之和(field1的值爲41 + field2的值爲39)爲80.現在,您想要總和(10 + 80),如屬性sum(field1 + field2)?我們可以使用PHP腳本來處理,這樣如果你使用MySQL:
<?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;
?>
你可以測試它,如果它會運行
你希望下列哪一項? (所有field1的總和)+(所有field2的總和),還是sum(field1 + field2)? –
或者在每次使用包含每列的總和的union子句進行過濾時重新運行sql。或使用JavaScript。 –
我編輯了我的評論 - 你想要_total_,還是每個單獨行的單獨總和? –