Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Cách tìm các từ lặp lại của một ô trong SQL

Nếu bạn muốn mã hóa nó:

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

Cập nhật: Đây là một cách tiếp cận được mã hóa ít cứng hơn một chút:

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

Nó sẽ tìm kiếm tối đa 10 từ đầu tiên và không xử lý đúng cách viết hoa, chấm câu hoặc nhiều khoảng trắng, nhưng nó sẽ cung cấp cho bạn ý tưởng về cách tiếp cận mà bạn có thể thực hiện. Nếu bạn muốn nó xử lý các chuỗi dài hơn, chỉ cần tiếp tục thêm vào các câu lệnh 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. create_series () tương đương trong MySQL

  2. MySQL - tôi có thể chèn bao nhiêu hàng trong một câu lệnh INSERT?

  3. Menu đệ quy với php và MySQLi

  4. PDO không thể kết nối máy chủ mysql từ xa

  5. MySQL:Chèn datetime vào trường datetime khác