0

我有桌子。我需要在我的查询中计算一些字段。这是我的查询:

select COUNT(q1) as 'result'
from (select DISTINCT id_qs as 'q1' FROM main where id_exam=40) as q2

这是查询完美的工作。但。当我把它放在php代码中时:

   function HowManyQuestion($id)
   {
        mysql_connect($this->hostname,$this->username,$this->password) OR DIE("Can't connect");
        mysql_select_db($this->dbName) or die(mysql_error());
        $query = "select COUNT(q1) as 'result' from (select DISTINCT id_qs as 'q1' FROM main where id_exam=40) as q2;";
        $res = mysql_query($query) or die(mysql_error());
        $id=0;
        while ($row=mysql_fetch_array($res)) {
            $id=$row['result'];
            break;
        }
        return $id;

   }

结果我有错误:

您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在第 1 行的 ') as q2' 附近使用正确的语法

那么这个怎么修呢?

4

2 回答 2

5

实际上,您可以在不使用子查询的情况下简化查询,我认为这会消除错误。

SELECT COUNT(DISTINCT id_qs) totalCount
FROM main
WHERE id_exam = 40
于 2013-08-13T13:12:28.333 回答
0

别名列名不能用于进一步处理

            select COUNT(id_qs) as 'result'
                   from (select DISTINCT id_qs as 'q1' FROM main where id_exam=40) as q2
于 2013-08-13T13:18:29.220 回答