यादृच्छिक प्रकार का उपयोग करते समय मैं डुप्लिकेट कैसे निकालूं?


31

मैंने एक दृश्य बनाया है जहाँ मैं नोड शीर्षक और एक लोगो (एक cck फ़ील्ड) प्रदर्शित कर रहा हूँ। तर्कों में मैंने टैक्सोनोमी शब्द का नाम दिया है।

परिणाम में एक नोड 2 या 3 बार प्रदर्शित हो रहा है; मैंने पहले से ही क्वेरी सेटिंग्स में अलग चेकबॉक्स चेक किया था लेकिन वह भी काम नहीं करता है। मैंने यादृच्छिक प्रकार का उपयोग किया है, जो डुप्लिकेट का कारण लगता है; जब मैं यादृच्छिक क्रम को हटाता हूं, तो यह ठीक काम करता है।

यादृच्छिक क्रम को अक्षम किए बिना मैं डुप्लिकेट से कैसे बच सकता हूं?


यह वास्तव में अच्छा होगा अगर कोई डुप्लिकेट और काउंटर-उपायों के लिए कारण (ओं) को समझाए। 5 समाधान है कि 'शायद' काम केवल अर्द्ध इष्टतम है
n3rd

जवाबों:


19

डुप्लिकेट रिकॉर्ड्स को हटाने के लिए व्यू एग्रीगेशन सेटिंग्स को सक्षम करके आप ग्रुप BY या DISTINCT लागू कर सकते हैं।
1. अपना दृश्य संपादित करें और संपादित करें
उपयोग एकत्रीकरण को सक्षम करके उन्नत »अन्य अनुभाग में : हां
3. FIELDS या फ़िल्टर CRITERIA अनुभाग में, उन क्षेत्रों के लिए एग्रीगेशन सेटिंग्स चुनें और लागू करें, जिनके आधार पर आप समूह बनाना चाहते हैं।


2
मेरे पास नमूना समस्या है, मैं एकत्रीकरण का उपयोग करने में सक्षम हूं और मेरे दायर में distinctचयन नहीं है , मुझे किस प्रकार का एकत्रीकरण में चयन करना चाहिए?
युसुफ़

39

एक दृश्य में विभिन्न मूल्यों को प्राप्त करने का सरल तरीका निम्नलिखित है:

  1. जाओ और अपने विचार संपादित करें
  2. उन्नत »अन्य अनुभाग में" क्वेरी सेटिंग "पर क्लिक करें
  3. "डिस्टिंक्ट" चेक-बॉक्स की जाँच करें।

अपने प्रश्न में मैंने पहले ही उल्लेख किया है कि मैंने क्वेरी सेटिंग्स में डिस्टिक्ट विकल्प की जांच की है।
अहमद

यूजीन और क्लाइव, यह काम है, इसे साझा करने के लिए बहुत बहुत धन्यवाद।

8

दृश्यों का उपयोग करके विभिन्न मूल्यों को प्राप्त करने का सरल तरीका निम्नलिखित है:

  1. जाओ और अपने विचार संपादित करें
  2. उन्नत »अन्य अनुभाग में" क्वेरी सेटिंग "पर क्लिक करें
  3. "डिस्टिंक्ट" चेक-बॉक्स की जाँच करें।

डुप्लिकेट रिकॉर्ड को हटाने के लिए व्यू एकत्रीकरण सेटिंग्स को सक्षम करके आप ग्रुप बीवाई या डिस्टिंक्ट लागू कर सकते हैं।

  1. जाओ और अपने विचार संपादित करें
  2. उन्नत में »अन्य अनुभाग उपयोग एकत्रीकरण को सक्षम करके: हाँ
  3. FIELDS या फ़िल्टर CRITERIA अनुभाग में, उन क्षेत्रों के लिए एकत्रीकरण सेटिंग चुनें और उन क्षेत्रों में लागू करें, जिनके लिए आप समूह बनाना चाहते हैं।

5

मुझे पता है कि यह सवाल पहले ही उत्तर दिया जा चुका है, लेकिन कुछ उपयोगों के लिए ये समाधान काम नहीं करते हैं। हालाँकि, कुछ शोध करने के बाद मुझे एक समाधान मिला जो मेरी आवश्यकताओं के लिए काम करता है।

मुझे वास्तव में उपयोगी वर्कअराउंड मिला जिसने मुझे इसे ठीक करने की अनुमति दी। मैंने DropBucket को कोड स्निपेट पोस्ट किया है। मूल रूप से आप एक Drupal 7 क्वेरी परिवर्तन हुक लागू करते हैं, जो समूह टिप्पणियों और फ़ील्ड को निर्दिष्ट करने वाली क्वेरी टिप्पणियों के लिए सभी दृश्य प्रश्नों की जांच करता है। फिर यह उस समूह को SQL क्वेरी में जोड़ता है।

/**
 *  Found this trick on theoleschool.com.
 *  
 *  Description: Allows the view developer to specify the query
 *  group by action in the query comments. Great way to force the
 *  removal of duplicates.
 *  
 *  Just go into your query comments and type in "groupby:" with
 *  that colon followed by the field you want to group by.
 * 
 *  Examples...
 *  groupby:node.nid
 *  groupby:file_managed_file_usage.fid
 * 
 *  Ref-Comment: http://theoleschool.com/comment/496#comment-496
 *  Ref-Article: http://theoleschool.com/blog/using-hookviewsalter-add-group-statement
 */
function mymodule_query_alter(QueryAlterableInterface $query) {
  if ($query->hasTag('views')) {
    static $count;
    $view =& $query->getMetaData('view');

    if (strstr($groupby = $view->query->options['query_comment'], 'groupby')) {
      list($action, $field) = explode(':', $groupby);

      if (strlen($field) > 0) {
        $query->groupBy($field);
      }
    }
  }
}

http://dropbucket.org/node/153

स्रोत संदर्भ पृष्ठ पर टिप्पणियों में है।


मैं जोड़ना चाहता हूं कि DISTINCT के साथ ज्ञात समस्याएं हैं जो दृश्य 3.3 और उच्चतर में ठीक से काम नहीं कर रही हैं।
पैट्रिक

1
उपरोक्त करने के बजाय आप केवल दृश्य का नाम देख सकते हैं और फिर समूह जोड़ सकते हैं।
पोटनी स्विटर्स

यह बहुत अच्छा काम करता है। यहां कोई भी समाधान मेरे लिए काम नहीं करता है सिवाय इसके ... अंतिम समाधान खोजने के लिए हमेशा
रॉकिंग

4

मुझे भी यही समस्या थी। अंततः मैंने व्यू डिस्टिक्ट को स्थापित करके इसे हल किया मॉड्यूल ।

दृश्य में संबंध या अन्य जुड़ाव अक्सर "डुप्लिकेट" परिणाम बनाते हैं। उदाहरण के लिए, बहु-मान वाले क्षेत्र में प्रति बार एक मान वाले क्षेत्र में एक नोड जिसमें कई मान होते हैं, दृश्य में दिखाई दे सकता है। यह निराशाजनक है, और दृश्य UI में "DISTINCT" SQL क्वेरी विकल्प वास्तव में समस्या को हल नहीं करता है क्योंकि परिणाम पंक्ति तकनीकी रूप से अलग है। व्यू डिस्टिक्ट का उद्देश्य इन "डुप्लिकेट" पंक्तियों को हटाने या एकत्र करने के लिए एक सरल GUI विधि देना है।


0

मल्टी वैल्यू डेट फ़ील्ड के साथ समस्या थी। जितनी बार तारीख दर्ज की गई थी उतनी बार आइटम प्रदर्शित किए गए थे। यहां वर्णित समाधानों में से किसी ने भी मेरे लिए काम नहीं किया। लेकिन फिर मुझे एक डी 6 समाधान मिला जो अभी भी वहां डी 7 में काम करता है

hook_views_pre_render(&$view)जादू शब्द है। उदाहरण में यह केवल एक निश्चित दृश्य के एक निश्चित प्रदर्शन तक सीमित है। आशा करता हूँ की ये काम करेगा।

function MYMODULE_views_pre_render(&$view) {
  $used_nids = array();

  if ($view->name == 'events') {

    if ($view->current_display == 'page_2') {

      foreach ($view->result as $row) {

        if (!in_array($row->nid, $used_nids)) {

          $new_view_result[] = $row;
          $used_nids[] = $row->nid;
        }
      }
      $view->result = $new_view_result;
    }
  }
}

संपादित करें: यदि कोई सीमा निर्धारित की गई थी, तो दुर्भाग्य से यह डुप्लिकेट आइटमों की संख्या को घटा देता है। अगर किसी को इसके लिए कोई हल मिल जाए, तो कृपया टिप्पणी करें!


0

एक पुराने धागे को जगाने के लिए नहीं, लेकिन उत्तर (यदि ड्रुपल 7 और एक उजागर खोज फ़िल्टर का उपयोग करके) "खोज: खोज शब्दों" के तहत "खोज स्कोर को हटाने" की जांच करना है।

"फ़िल्टर मानदंड" के तहत

"खोज: खोज शब्द" जोड़ें

"खोज स्कोर निकालें" जांचें

"लागू करें (सभी डिस्प्ले)" पर क्लिक करें

सहेजें पर क्लिक करें


0

इन तरीकों में से किसी ने भी मेरे लिए काम नहीं किया, लेकिन व्यू रैंडम सीड मॉड्यूल ने वास्तव में चाल चली। हालाँकि, मेरे मुद्दे एक पेजर का उपयोग करने से अधिक संबंधित थे। यहां उस मॉड्यूल के प्रोजेक्ट पृष्ठ का एक उद्धरण दिया गया है:

बीज के साथ एक यादृच्छिक क्रम हैंडलर जोड़ता है। यदि एक निरंतर पूर्णांक तर्क N को sql RAND () फ़ंक्शन में निर्दिष्ट किया जाता है, तो इसे बीज मान के रूप में उपयोग किया जाता है, जो स्तंभ मानों का दोहराव अनुक्रम उत्पन्न करता है। इससे पेजिंग और दो बार आइटम नहीं दिखाने के लिए संभव है। PHP का उपयोग करके कस्टम बीज की गणना करना भी संभव है, जिससे आप दिन की तारीख जैसे चर के आधार पर छद्म रैंडम संख्या बना सकते हैं।


0

मेरे पास कई हैं Date fieldsऔर शुरुआत करके क्रमबद्ध करना चाहता हूं FIRST date... यहां बताया गया है कि यह कैसे काम करता है: में Views->advanced->Other: use aggregation: YES और फिर: SORT CRITERIA->Aggregation settings->Aggregation type: COUNT

मुझे countउदाहरण के बजाय संख्या देने की उम्मीद थी, लेकिन इसने परिणाम को अलग बना दिया ...

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.