Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

सभी बच्चों को पैरेंट आईडी द्वारा प्राप्त करें और जहां mysql में क्लॉज है

दो व्याख्याएं संभव हैं। हाल ही की एक टिप्पणी से मैं समझता हूं कि आपको पहले वाले की आवश्यकता है:

बहिष्कृत माता-पिता के बच्चों को बाहर करें

तो अगर बच्चे संपादक नहीं हैं, अगर उनके पूर्वजों में से एक संपादक है तो उन्हें बाहर रखा जाना चाहिए। इसका मतलब है कि आपको सबसे आंतरिक क्वेरी में रिकॉर्ड्स को बाहर करना चाहिए:where जोड़ें वहाँ:

select  id,
        name,
        parent_id,
        user_type
from    (select * from p
         where user_type <> 'editor'
         order by parent_id, id) products_sorted,
        (select @pv := '19') initialisation
where   find_in_set(parent_id, @pv)
and     length(@pv := concat(@pv, ',', id))

बहिष्कृत माता-पिता के बच्चों को शामिल करें

इस व्याख्या में आप चाहते हैं कि संपादक बच्चों को शामिल किया जाए, भले ही उनके किसी पूर्वज को बाहर रखा जाए या नहीं।

user_typeजोड़ें select . में फ़ील्ड सूची बनाएं और फिर उस क्वेरी को रैप करें जो फ़िल्टर करता है, इस तरह:

select  *
from    (
        select  id,
                name,
                parent_id,
                user_type
        from    (select * from p
                 order by parent_id, id) products_sorted,
                (select @pv := '19') initialisation
        where   find_in_set(parent_id, @pv)
        and     length(@pv := concat(@pv, ',', id))
) as sub
where user_type <> 'editor'

तो फिर, यहां परिणाम में ऐसे रिकॉर्ड भी शामिल होंगे जिनके माता-पिता-पदानुक्रम (माता-पिता, दादा-दादी, दादा-दादी, ...) को पूरी तरह से शामिल नहीं किया जा सकता है (क्योंकि उनमें से कुछ संपादक हो सकते हैं)।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. एकाधिक सर्वरों में मैसकल को कैसे विभाजित करें?

  2. स्ट्रिंग के आधार पर गतिशील रूप से PHP ऑब्जेक्ट बनाएं

  3. लैटिन1 एन्कोडेड कॉलम में UTF-8 वर्णों का पता कैसे लगाएं - MySQL

  4. डीबी में उन्हें स्टोर करने के लिए सरणी को क्रमबद्ध करने का क्या मतलब है?

  5. मैसकल लगातार पंक्तियों की गिनती करता है जो मेल खाते हैं