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

एक कॉलम में एकाधिक टेक्स्ट मान, सबसे दोहराने योग्य शब्द खोजने के लिए क्वेरी की आवश्यकता है

आप इसे एक निर्मित संख्या श्रृंखला के साथ जोड़कर कर सकते हैं जिसका उपयोग nवें शब्द को चुनने के लिए किया जाता है। दुर्भाग्य से, श्रृंखला उत्पन्न करते समय MySQL में कोई अंतर्निहित विधि नहीं है, इसलिए यह थोड़ा बदसूरत है, लेकिन यहां यह है:

select
  substring_index(substring_index(title, ' ', num), ' ', -1) word,
  count(*) count
from job j
join (select 1 num union select 2 union select 3 union select 4 union select 5 union select 6 union select 7 union select 8 union select 9 union select 10 union select 11 union select 12) n
on length(title) >= length(replace(title, ' ', '')) + num - 1
group by 1
order by 2 desc

एक SQLFiddle पर लाइव डेमो देखें अपने डेटा का उपयोग करना और अपना अपेक्षित आउटपुट देना।

अफसोस की बात है कि संख्या श्रृंखला के प्रत्येक मान को हार्ड कोड करने की सीमा भी उस कॉलम के शब्दों की संख्या को सीमित करती है जिसे संसाधित किया जाएगा (इस मामले में 12)। इससे कोई फर्क नहीं पड़ता कि श्रृंखला में बहुत अधिक संख्याएँ हैं, और आप हमेशा एक बड़े अपेक्षित इनपुट टेक्स्ट को कवर करने के लिए और जोड़ सकते हैं।



  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. पर्ल और XPath:डेटाबेस तालिका में अनुपलब्ध प्रविष्टियाँ

  4. विदेशी कुंजी पर तालिका (त्रुटि:150) नहीं बना सकता

  5. एक MySQL डीबी में/से छवि डालें/देखें