powered by simpleCommunicator - 2.0.41     © 2025 Programmizd 02
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Помогите вернуть подстроку с текстом до и после
2 сообщений из 2, страница 1 из 1
Помогите вернуть подстроку с текстом до и после
    #32046612
well
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всемогущие знатоки эСКюэЛ!
Задача в следующем, необходимо чтобы запрос возвращал строку с предшествующим и последующим текстом. (напр. 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 символах от границ текста в колонке запрос совпадает, но ничего не возваращет !!??.

Помогите справиться с граБлями. Спасибо!
...
Рейтинг: 0 / 0
Помогите вернуть подстроку с текстом до и после
    #32047295
well
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Приходится самому отвечать на свой вопрос.
Сам себе не поможешь никто тебе не поможет (не совсем правда). Это выражение составлено с помощью NoXcuz с http://forums.devshed.com.

$book_queryq - искомая строка.

SELECT
CONCAT('...',SUBSTRING(text_value,
LOCATE($book_queryq,LCASE(text_value))-IF(LOCATE($book_queryq,text_value)-20<1,0,20),
LENGTH($book_queryq)+IF(LENGTH(text_value)-LOCATE($book_queryq,text_value)>1,50,1)),'...')

FROM tocWHERE text_value LIKE ?

Этот запрос возвращает искомую строку с определенным количеством символов до и после нее, иначе говоря в контексте. Недостаток - LOCATE($book_queryq,text_value) вычисляется четыре раза, но на тысяче страниц обработка происходит очень быстро. Кто может лучше - мерси!

Успехов всем!
...
Рейтинг: 0 / 0
2 сообщений из 2, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Помогите вернуть подстроку с текстом до и после
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]