【问题标题】:Drupal SQL "Select count distinct"Drupal SQL“选择计数不同”
【发布时间】:2010-10-25 11:08:54
【问题描述】:
有人可以帮忙调试吗?
目前我的脚本抛出这个错误
解析错误:语法错误,includes/common.inc(1695) 中出现意外的“=”:第 38 行的 eval() 代码
我已将其范围缩小到这条 SQL 语句。在 Drupal 中计算结果行似乎并不像我希望的那样简单。
$sql_checkIP = "SELECT COUNT(*)
FROM (SELECT DISTINCT v.hostname
FROM {pollfield_votes} v
WHERE v.hostname = '%s' AND v.nid =%d)";
$result0 = db_result(db_query($sql_checkIP, $hostname, $nid));
【问题讨论】:
标签:
mysql
drupal
drupal-6
【解决方案1】:
我看到的第一件事是你没有为派生表写任何别名
$sql_checkIP = "SELECT COUNT(*)
FROM (SELECT DISTINCT v.hostname
FROM {pollfield_votes} v
WHERE v.hostname = '%s' AND v.nid =%d) as new_derived_table";
现在,我不知道您的查询会有多少结果,但 db_result 仅在您只有一行结果时使用。如果是这种情况没关系,否则你应该实现这样的循环:
$result = db_query($sql_checkIP, $hostname, $nid);
while($res=db_fetch_array($result)){
$count_row = $res['COUNT(*)'];
}