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

एसक्यूएल:क्या मैं विंडो फ़ंक्शन में डेटा को वर्तमान पंक्ति में संदर्भित/एक्सेस कर सकता हूं?

यह मानते हुए कि आप MySQL का उपयोग कर रहे हैं, और यह मानते हुए कि आपकी तालिका का नाम test . है , और यह मानते हुए कि दोनों कॉलम स्ट्रिंग प्रकार हैं:

SELECT
  t1.id, count(t2.list)
FROM
(test t1 LEFT JOIN test t2 ON
  (t2.list LIKE CONCAT('%,', t1.id, ',%')) OR
  (t2.list LIKE CONCAT('%,', t1.id)) OR
  (t2.list LIKE CONCAT(t1.id, ',%')))
GROUP BY t1.id;

कृपया ध्यान रखें कि यह समाधान आपके पास मौजूद रिकॉर्ड्स की संख्या और list में स्ट्रिंग्स की औसत लंबाई के आधार पर बहुत धीमा हो सकता है। फ़ील्ड.

अगर आपको कुछ तेज़ चाहिए, तो मुझे लगता है कि यह एक ही प्रश्न नहीं हो सकता है। शायद हमें उसके लिए एक संग्रहीत कार्यविधि या कुछ अनुप्रयोग तर्क लिखना होगा, या अतिरिक्त तालिकाओं या स्तंभों और एकाधिक SQL कथनों की एक श्रृंखला का उपयोग करना होगा।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL - स्ट्रिंग से सटीक शब्द खोजें

  2. Mysql प्रोटोकॉल में प्रमाणीकरण कितना सुरक्षित है?

  3. MySQL संग्रहीत कार्यविधियाँ बनाना और उनका उपयोग करना - एक ट्यूटोरियल

  4. MySQL:किसी अन्य तालिका से एक कॉलम में मान डालें

  5. एक दृश्य के भीतर से एक संग्रहीत कार्यविधि को कॉल करें