2012-04-09 4 views
9

Я хочу найти первые 4 слова и последние 4 слова после определенного ключевого слова из базы данных. Предположим, что ключевое слово "Account", тогда я хочу найти первые 4 слова перед "Account", появятся в строке и 4 слова после "Account" появляются в строке.Найдите первые 4 слова и последние 4 слова из базы данных после определенных ключевых слов?

В настоящее время я использую этот запрос для поиска первых 20 символов и последних 20 символов после определенного ключевого слова.

SELECT 
SUBSTRING(line.WD, LOCATE('%Account%', line.WD) - 20, 20) AS First20Char, 
SUBSTRING(line.WD, LOCATE('%Account%', line.WD)+LENGTH('a'), 20) AS Last20Char 
FROM `line` WHERE line.WD LIKE '%Account%' 
+0

Какую ошибку вы получаете, когда выполняете запрос? Пожалуйста, укажите подробно! – NSExpression

ответ

1

SQL называется * S * QL по причине - вы не собираетесь быть в состоянии сделать что-то это передовое без помощи промежуточного языка программирования --- если вы не хотите вещей становитесь беспорядочными.

Короткий ответ заключается в том, что вам нужно будет использовать UDF (пользовательскую функцию) для первого разделения, затем проанализировать строку с разделителями (в пробелах «), тогда вы можете применить свою логику -4/+ 4.

Вот лучшую статью о сети на SQL-UDF, чтобы вы начали:

http://www.codeproject.com/Articles/7938/SQL-User-Defined-Function-to-Parse-a-Delimited-Str

Успехов!

PS - будет намного проще просто захватить ваш +/- 30 chr, а затем разбор синтаксиса, хотя =]. Вероятно, это также сэкономит больше системных ресурсов.

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