Можно ли получить совпадающую строку из запроса SQL? - PullRequest
2 голосов
/ 04 ноября 2008

Если у меня есть запрос на возврат всех совпадающих записей в БД, имеющих «новости» в столбце с возможностью поиска (т. Е. SELECT * FROM table WHERE column LIKE %news%), и в одной конкретной строке есть запись, начинающаяся с «В последних мировых новостях Сомали была захвачена по ... ", могу ли я вернуть определенный" кусок "записи SQL? Вроде как тизер, если хотите.

Ответы [ 4 ]

7 голосов
/ 04 ноября 2008
select substring(column,
                 CHARINDEX ('news',lower(column))-10,
                 20)
FROM table 
WHERE column LIKE %news%

в основном подстрока столбца, который начинается на 10 символов раньше, чем слово «новости» и продолжается до 20.

Редактировать: Вам нужно убедиться, что «новости» не в первых 10 символах, и соответственно изменить начальную позицию.

2 голосов
/ 04 ноября 2008

Вы можете использовать функцию подстроки в части SELECT. Что-то вроде:

SELECT SUBSTRING(column, 1,20) FROM table WHERE column LIKE %news%

Это вернет первые 20 символов из столбца столбец

1 голос
/ 04 ноября 2008

У меня была та же проблема, я закончил загрузкой всего поля в C #, затем повторно искал текст для строки поиска, затем выбрал x символов с каждой стороны.

Это будет хорошо работать для LIKE, но не для полнотекстовых запросов, которые используют ФОРМЫ ИНФЛЕКЦИИ, потому что они могут совпадать с "women" при поиске "woman".

0 голосов
/ 04 ноября 2008

Если вы используете MSSQL, вы можете выполнять все виды VB-подобных функций подстроки как часть вашего запроса.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...