php - SQL Union 只计算一个查询

标签 php sql database union

我正在尝试对表格中的行进行计数。目前我正在使用这个:

$sql = "SELECT COUNT(*) 
        FROM `friends` 
        WHERE `user1`='".$user1."' 
            AND `user2`='".$user2."' 
            AND `valid`=0 
        UNION 
        SELECT COUNT(*) 
        FROM `friends` 
        WHERE `user1`='".$user2."' 
            AND `user2`='".$user1."' 
            AND `valid`=0";

如您所见,user1 可以是 $user1$user2。但它不计算 UNION 之后的行数,它只执行 UNION 之前的第一个查询,所以当我实际上应该计算 1 行时我以 0 结尾。

我该如何解决?

最佳答案

另一种选择,将您的查询替换为:

$sql = "SELECT COUNT(*) 
    FROM `friends` 
    WHERE (
            (`user1`='".$user1."' AND `user2`='".$user2."') OR
            (`user1`='".$user2."' AND `user2`='".$user1."')
          )
     AND `valid`=0";

关于php - SQL Union 只计算一个查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11438015/

相关文章:

mysql - mysql如何显示单列下的子列

php - 将 BASH 关联数组传递给 PHP 脚本

php - 帮助处理 SP 和 UDF?

php - 使用服务帐户插入 Google 日历条目

java - 最好查询一次,然后根据返回的列值组织对象,还是使用不同的条件查询两次?

mysql - 使用以相同字段开头的 GROUP BY 优化多个查询

php - 用于存储连续变化值的数据库结构

php - 非法变量名称/编号

PHP MySQL 发票 Material

java - Junit 测试在使用数据库和实体管理器时随机失败