Php 带别名的多查询Mysql
我有两个查询,必须在一个查询执行中执行。例如Php 带别名的多查询Mysql,php,mysql,mysqli,Php,Mysql,Mysqli,我有两个查询,必须在一个查询执行中执行。例如 $query1 = "SELECT COUNT(*) AS c1 FROM table WHERE condition1"; $query2 = "SELECT COUNT(*) AS c2 FROM table WHERE condition2"; $result = mysqli->query($query1 ." UNION ".$query2); while($res = $result->fetch_assoc()) {
$query1 = "SELECT COUNT(*) AS c1 FROM table WHERE condition1";
$query2 = "SELECT COUNT(*) AS c2 FROM table WHERE condition2";
$result = mysqli->query($query1 ." UNION ".$query2);
while($res = $result->fetch_assoc())
{
print $res;
}
我必须得到两个计数,分别为c1和c1
通过执行上述代码,我得到了{“c1”:“计数数”}
可能的解决办法是什么
提前谢谢
我有两个查询,必须在一个查询执行中执行
不,你没有
只需在两个单独的电话中运行它们
我有两个查询,必须在一个查询执行中执行
不,你没有
只需在两个单独的呼叫中运行它们。尝试这样做以获得计数:
$count = 0;
while($res = $result->fetch_assoc())
{
$count += array_sum($res);
}
尝试执行此操作以获取计数:
$count = 0;
while($res = $result->fetch_assoc())
{
$count += array_sum($res);
}
只需使用CASE语句:
SELECT
SUM(
CASE WHEN condition1
THEN 1
ELSE 0
END) AS c1,
SUM(
CASE WHEN condition2
THEN 1
ELSE 0
END) AS c2,
FROM table
只需使用CASE语句:
SELECT
SUM(
CASE WHEN condition1
THEN 1
ELSE 0
END) AS c1,
SUM(
CASE WHEN condition2
THEN 1
ELSE 0
END) AS c2,
FROM table
使用
UNION ALL
代替UNION
:
$result = mysqli->query($query1 ." UNION ALL".$query2);
使用
UNION ALL
代替UNION
:
$result = mysqli->query($query1 ." UNION ALL".$query2);
更改sql查询
SELECT
(SELECT COUNT(*) FROM table WHERE condition1) as c1,
(SELECT COUNT(*) FROM table WHERE condition2) as c2
FROM table
更改sql查询
SELECT
(SELECT COUNT(*) FROM table WHERE condition1) as c1,
(SELECT COUNT(*) FROM table WHERE condition2) as c2
FROM table
你想要实现什么?你想把c1和c2相加,得到一个总计数作为结果吗?不想得到单独的结果。你想得到什么?你想将c1和c2相加,得到一个总计数作为结果吗?不,得到单独的结果。谢谢你的回答,但我想得到单独的计数。谢谢你的回答,但我想得到单独的计数。这对我也很有效,但我必须为外部选择设置DISTINCT以获得单个结果。谢谢,这对我也有用,但我必须为外部选择设置DISTINCT,以获得单一结果。谢谢