子查询在php上不起作用
我有一张桌子。我需要在我的查询中计算一些字段。这是我的疑问:子查询在php上不起作用,php,mysql,sql,Php,Mysql,Sql,我有一张桌子。我需要在我的查询中计算一些字段。这是我的疑问: 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->use
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行中使用的正确语法
那么如何解决这个问题呢?实际上,您可以简化查询而不使用子查询,我认为这将消除错误
SELECT COUNT(DISTINCT id_qs) totalCount
FROM main
WHERE id_exam = 40
实际上,您可以简化查询而不使用子查询,我认为这将消除错误
SELECT COUNT(DISTINCT id_qs) totalCount
FROM main
WHERE id_exam = 40
别名列名不能用于进一步处理
select COUNT(id_qs) as 'result'
from (select DISTINCT id_qs as 'q1' FROM main where id_exam=40) as q2
别名列名不能用于进一步处理
select COUNT(id_qs) as 'result'
from (select DISTINCT id_qs as 'q1' FROM main where id_exam=40) as q2
删除
代码>在查询的末尾。-><代码>作为q2“
此外,mysql*
函数已被取消权限。请改用mysqli或PDO。有关详细信息,请阅读此内容:删除查询末尾的;
。->作为q2”代码>此外,mysql.*
函数被取消分级。改用mysqli或PDO。阅读此文了解更多信息:只要他不使用分号,可能会:)+1只要他不使用分号,可能会:)+1