【发布时间】:2015-10-12 15:35:10
【问题描述】:
目的是从多个(总共 9 个)SELECT 语句中计算行数,并在 PHP 页面上显示应用程序中的行数。使用 Oracle 11g 数据库
不要关心在这里选择任何内容 - 只需要行数。
我还没有找到使用 Oracle 和使用 Select 语句计算行数的好方法。
使用 Multiple Selects 和 Oracle 计算行数然后显示在 PHP 页面上的最佳方法是什么??
请举例说明
这是我所拥有的,但要这样做 9 次
$query = oci_parse($conn, "SELECT ID"
. " FROM TABLE A"
. " WHERE (FieldX = 'N' AND FieldY = 'Y' AND FieldZ = 'Y')");
oci_execute($query) or die(oci_error($query));
oci_fetch_all($query, $array);
unset($array);
$numberofrows1 = oci_num_rows($query);
我怎样才能提高效率??
我尝试在 SELECT 中使用已编入索引的字段或 PK...
【问题讨论】:
-
为什么不直接选择 count(...)?看起来您正在选择数据,然后计算返回的行数,如果您只想要一个计数,则没有必要
-
您当然希望使用聚合函数(例如
count(*)),而不是获取数据和计数。您对同一张表的所有查询是否都具有不同的标准?如果是这样,您可以通过执行sum( case when x = 'N' and y = 'Y' and z = 'Y' then 1 else 0 end)并针对每组条件重复进行一次查询,返回 1 行,其中 9 个不同的列具有不同的计数。 -
贾斯汀 - 来自同一张表的所有查询 - 只是不同的 WHERE 条件......是的,case 语句会有所帮助 - 我会重写
标签: sql database oracle select count