Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
well
Зарегистрирован: 28.08.2002 Сообщения: 3
|
Добавлено: Ср Авг 28 2002 16:53 Заголовок сообщения: Помогите вернуть подстроку с текстом до и после |
|
|
Всемогущие знатоки эСКюэЛ! Задача в следующем, необходимо чтобы запрос возвращал строку с предшествующим и последующим текстом. (напр. 20 символов).
Ящик: Мускуль 3.23 Перл 5.6 Активстейт Апач 1.3 Виндовс 2000
Возможно такое умеет Мускуль 4.0?
Пробовал вот что:
$qry_frm_usr;
SELECT SUBSTRING(content, LOCATION($qry_frm_usr)-20,40) FROM toc WHERE content LIKE $qry_frm_usr
Но тут проблема - если совпавший текст находится ближе чем в 20 символах от границ текста в колонке запрос совпадает, но ничего не возваращет !!??.
Помогите справиться с граБлями. Спасибо! |
|
Вернуться к началу |
|
 |
well
Зарегистрирован: 28.08.2002 Сообщения: 3
|
Добавлено: Сб Авг 31 2002 12:38 Заголовок сообщения: Re: Помогите вернуть подстроку с текстом до и после |
|
|
Приходится самому отвечать на свой вопрос. Сам себе не поможешь никто тебе не поможет (не совсем правда). Это выражение составлено с помощью NoXcuz с http://forums.devshed.com.
$book_queryq - искомая строка.
SELECT CONCAT('...',SUBSTRING(text_value, LOCATE($book_queryq,LCASE(text_v.. tocWHERE text_value LIKE ?
Этот запрос возвращает искомую строку с определенным количеством символов до и после нее, иначе говоря в контексте. Недостаток - LOCATE($book_queryq,text_value) вычисляется четыре раза, но на тысяче страниц обработка происходит очень быстро. Кто может лучше - мерси!
Успехов всем! |
|
Вернуться к началу |
|
 |
|