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.