首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何从视图的结果页中删除重复

如何从视图的结果页中删除重复
EN

Drupal用户
提问于 2013-07-22 12:12:15
回答 1查看 16.2K关注 0票数 4

我浏览了所有在网上找到的解决方案。

在我的情况下,无论是独立的还是聚合的都不起作用。是否有一种使用hook_query_alter()删除重复项的方法?

在视图中运行的sql查询如下:

代码语言:javascript
运行
复制
SELECT node.changed AS node_changed, node.nid AS nid, SUM(search_index.score * search_total.count) AS score
FROM 
{node} node
LEFT JOIN {search_index} search_index ON node.nid = search_index.sid
LEFT JOIN {search_total} search_total ON search_index.word = search_total.word
INNER JOIN {search_dataset} search_dataset ON search_index.sid = search_dataset.sid AND (search_index.type = search_dataset.type)
WHERE ((( (search_index.type = 'node') AND (search_dataset.data LIKE '% saadan %' ESCAPE '\\') AND (search_dataset.data LIKE '% goer %' ESCAPE '\\') AND (search_dataset.data LIKE '% du %' ESCAPE '\\') ))AND(( (node.status = '1') AND (node.type NOT IN  ('nodetype')) )))
GROUP BY search_index.sid, score, node_changed, nid
HAVING (( (COUNT(*) >= '2') ))
ORDER BY node_changed DESC
LIMIT 10 OFFSET 0 

最后注:

我还知道通过链接到hook_views_pre_render()来删除内容的解决方案,但我并不认为这是一个解决方案,因为它会破坏您的结果。

如果我将'GROUP BY search_index.sid,score,node_changed,nid‘替换为GROUP nid,则查询非常有效。我怎样才能做到这一点?

EN

回答 1

Drupal用户

发布于 2013-07-22 12:55:14

希望这能帮到你,

使用不同或聚合,您可以解决您的问题。可以应用组BY或DISTINCT来删除重复记录。

去看看台阶。

使用不同

  • 在视图中实现不同价值的简单方法是:
    • 到你的视野去
    • 在“高级”部分中,单击“查询设置”
    • 选中“显著”复选框。

使用聚合

  • 您可以通过启用视图聚合设置来删除重复记录来应用组。
    • 去编辑你的视图
    • 其他部分,通过启用使用聚合:是
    • 在“字段或筛选条件”部分中,选择并应用要根据或不同对哪些字段进行分组的聚合设置。
票数 6
EN
页面原文内容由Drupal提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://drupal.stackexchange.com/questions/79965

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档