假设我们有一个名为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 查询是这样的:
$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与field2的值为“4”有关系,因此(6 + 4)之和为10。而(field1的值41 + field2的值39)之和是 80。现在,您想对属性sum(field1+field2)的行中提到的(10 + 80)求和吗?我们可以使用 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;
?>
你可以测试它是否可以工作..