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

SQL में किसी सेल के दोहराए गए शब्दों को कैसे खोजें

अगर आप इसे हार्ड कोड करना चाहते हैं:

select EntityID, Situation
from Entity
where Situation like '%the the%'
or Situation like '%of of%'
or Situation like '%is is%'

अपडेट करें: यहाँ थोड़ा कम हार्ड-कोडित दृष्टिकोण है:

select EntityID, Situation, right(s2, diff * 2 + 1) as RepeatedWords
from (
    select EntityID, Situation, WordNumber,
        substring_index(Situation, ' ', WordNumber) s1,
        substring_index(Situation, ' ', WordNumber + 1) s2,
        length(substring_index(Situation, ' ', WordNumber + 1)) - length(substring_index(Situation, ' ', WordNumber)) -1 diff
    from `Entity` e
    inner join (
        select 1 as WordNumber
        union all
        select 2 
        union all
        select 3 
        union all
        select 4 
        union all
        select 5 
        union all
        select 6 
        union all
        select 7 
        union all
        select 8 
        union all
        select 9 
        union all
        select 10 
    ) n
) a
where right(s1, diff) = right(s2, diff)
    and diff > 0
order by EntityID, WordNumber

यह पहले 10 शब्दों तक खोज करेगा, और केस, विराम चिह्न या एकाधिक रिक्त स्थान को ठीक से संभाल नहीं पाएगा, लेकिन यह आपको एक दृष्टिकोण का विचार देना चाहिए जिसे आप ले सकते हैं। यदि आप चाहते हैं कि यह लंबी स्ट्रिंग्स को संभाले, तो बस UNION ALL स्टेटमेंट्स को जोड़ते रहें।



  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. पुनर्स्थापना त्रुटि के साथ mysqldump समस्याएँ:'कृपया आयात करने से पहले तालिका स्थान को त्यागें'

  3. मैसकल - प्रतिशत से सीमा?

  4. Mysql/innodb में गतिरोध का पता कैसे लगाएं?

  5. साइटमैप उत्पन्न करने के लिए PHP के साथ एकाधिक SQL तालिकाएं