2013-10-15 4 views
1

Я работаю над небольшой реляционной базой данных для школы и испытываю проблемы с простым запросом. Я должен найти все записи в таблице, где есть поле со словом «OMG» где-то в тексте. Я пробовал несколько других, и я не могу понять это. Я получаю неверную ошибку оператора связи.Oracle sql query

мои попытки:

select * from comments where contains('omg'); 
select * from comments where text contains('omg'); 
select * from comments where about('omg'); 

и несколько больше вариаций выше. Как вы можете видеть, я являюсь брендом, который шлепает новый для SQL. текст - это название поля в таблице комментариев.

Спасибо за любую помощь.

+0

СОДЕРЖИТ специальное ключевое слово используется с индексами КОНТЕКСТ - см Http: // документы. oracle.com/cd/B28359_01/text.111/b28303/ind.htm –

ответ

1

Предполагая, что имя столбца text:

select * from comments where text like '%omg%'; 

Процент % дикое карточка, которая означает, что любой текст может прийти до/после omg

Обратите внимание, если вы этого не сделаете хотите, чтобы результаты содержали слова, в которых omg` является подстрокой - вы можете рассмотреть возможность добавления пробелов:

select * from comments where text like '% omg %'; 

Конечно, что это не распространяется на случаи, как:

  • OMG в конце предложения (следует «»)
  • OMG имеет „!“ сразу после этого
  • и т.д.
1

Вы можете использовать LIKE operator с символами (%):

SELECT * FROM comments WHERE text LIKE '%omg%'; 
+0

Этот ответ отличается от моей причины? – alfasin

+0

Нет, не сильно отличается. Мы просто ударили его в одно и то же время - никакого вреда не было. У вас есть описание того, что делает шаблон. У меня есть ссылка на документацию 'LIKE', поэтому я оставлю ее для справки. – showdev