【问题标题】: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(*)'];  
    }
    

    【讨论】:

    • 太棒了——帮助很大!谢谢:)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多