2015-07-02 2 views
0

Я пытаюсь написать SQL-запрос, который сможет предоставлять наиболее часто используемые сохраненные сообщения. Например, есть база данных, которая хранит несколько сообщений по определенному предмету. Не у всех пользователей есть одно и то же сообщение.Найти общие подстроки в столбце, используя SQL

id | name | comment 
------------------------------- 
1 | John | catching 
2 | Bill | assistance with catching 

Пример, приведенный выше, показывает таблицу, на которую я хотел бы отличить. Эти 2 - одна и та же категория ловли. Нужен SQL запрос, который будет знать, это то же самое, и будет отображаться только один раз

+0

Возможно, как запрос 'DISTINCT'? –

+0

Возможный дубликат: http://stackoverflow.com/questions/12562295/find-common-substrings – mustaccio

+1

Как это должно определить «ту же» -ность? Является ли «ловить» то же самое, что «любит ловить» или «не имеет ничего общего с ловом»? Как он должен знать, на каком слове (-ах) нажать? Если он может выбрать любое слово, вы можете легко получить все в категории «the». – Becuzz

ответ

0

Если вы можете указать список ключевых слов, чтобы соответствовать, вы могли бы сделать что-то вроде этого:

declare @keywords table 
(
    word varchar(100) 
) 
insert into @keywords values ('catching') 
insert into @keywords values ('unicorns') 

select kw.word, count(*) as NumMessages 
from your_table t 
inner join @keywords kw on t.comment like '%' + kw.word + '%' 
group by kw.word 
order by NumMessages 

Обратите внимание, что если комментарий содержит более одного из ключевых слов, которые будут отображаться в счете для обоих.

+0

Я буду работать с этой благодарностью. – titant3ch

Смежные вопросы