我在一个表中有一个SELECT
查询,其工作原理如下:
$sql = "SELECT count(max720) AS anzahlpositive1 from table where (((max720 - lastsignal)/lastsignal)*100) >= 1 AND (((max720 - lastsignal)/lastsignal)*100) < 2 AND max720 != ''";
$result = $conn->query($sql);
但是我有20-30个具有其他值。
对于每个
SELECT
查询,都会建立一个新的连接。.我认为这是很多性能。那是第二个:
$sql = "SELECT count(max720) AS anzahlpositive2 from table where (((max720 - lastsignal)/lastsignal)*100) >= 2 AND (((max720 - lastsignal)/lastsignal)*100) < 3 AND max720 != ''";
$result = $conn->query($sql);
可以一次选择吗? (更好的性能)
我尝试使用
UNION
(但我认为它适用于2个或更多表)这是解决方案吗?
$sql = "SELECT 1";
$sql .= "SELECT 2";
$sql .= "SELECT 3";
...
$result = $conn->query($sql);
while($row = $result->fetch_assoc()) {
echo $anzahlpositive1 ;
echo $anzahlpositive2 ;
echo $anzahlpositive3 ;
....
}
最佳答案
select count(max720) AS ...
union all
select count(max720) AS ...
您可以根据需要使用任意多个联合,读取
union
和union all
之间的区别,union
将丢弃重复项。