簡體   English   中英

子查詢(COUNT)不起作用

[英]Subquery (COUNT) Doesn't Work

我正在使用PHP和MySQL。 此查詢有效,其中我的頁面URL為MySite / Carl_Sagan(Carl_Sagan = $ MyURL),而Carl_Sagan也是數據庫表中名為people的值,字段URL:

$sql= "SELECT COUNT(URL) AS num FROM people WHERE URL = :MyURL";
$stmt = $pdo->prepare($sql);
$stmt->bindParam(':MyURL',$MyURL,PDO::PARAM_STR);
$stmt->execute();
$Total = $stmt->fetch();

switch($Total['num'])
{
case 1:
echo "\n";
require($BaseINC."/$MyPHP/inc/C/2_Child.php");
break;
case 0:
break;
default:
break;
}

但是,當我通過UNION ALL將多個表鏈接在一起,將其轉換為子查詢時,它將不起作用。 我沒有收到任何錯誤消息,但是$ Total ['num']的值為0,應為1。

誰能看到下面發布的我的子查詢的問題?

 $sql = "SELECT SUM(num) FROM (
  SELECT COUNT(URL) AS num FROM pox_topics WHERE URL = :MyURL
  UNION ALL
  SELECT COUNT(URL) AS num FROM people WHERE URL = :MyURL
  UNION ALL
  SELECT COUNT(Taxon) AS num FROM gz_life WHERE Taxon = :MyURL
  ) AS X";
 $stmt = $pdo->prepare($sql);
 $stmt->bindParam(':MyURL',$MyURL,PDO::PARAM_STR);
 $stmt->execute();
 $Total = $stmt->fetch();

我應該注意,即使我將子查詢剝離到原始表中,子查詢也不起作用,如下所示:

$sql = "SELECT SUM(num) FROM (
 SELECT COUNT(URL) AS num FROM people WHERE URL = :MyURL
) AS X";
$stmt = $pdo->prepare($sql);
$stmt->bindParam(':MyURL',$MyURL,PDO::PARAM_STR);
$stmt->execute();
$Total = $stmt->fetch();

沒有$Total['num']了。 嘗試SELECT SUM(num) AS num ...

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM