parser

Написать ответ на текущее сообщение

 

 
   команды управления поиском

Можно попробовать, но наверняка тормоз. ;-)

Luzhnikovskiy 27.08.2003 11:59

Идея:
1. LOCATE('$form:query',zzz) - позиция первого вхождения.
2. SUBSTRING(zzz,1,позиция) - подстрока до первого вхождения.
3. SUBSTRING(zzz,позиция + ^form:query.length[],length(zzz)) - подстрока после первого вхождения.
4. SUBSTRING-INDEX(подстрока_до,' ',-2) - последние 2 слова "подстроки_до"
5. SUBSTRING-INDEX(подстрока_после,' ',2) - первые 2 слова "подстроки_после"

Суммарно:
CONCAT(
    SUBSTRING-INDEX(SUBSTRING(zzz,1,LOCATE('$form:query',zzz)),' ',-2),
    '$form:query',
    SUBSTRING-INDEX(SUBSTRING(zzz, LOCATE('$form:query',zzz)+^form:query.length[],LENGTH(zzz)),' ',2)
)
Минусы (помимо тормозов) - наличие в $form:query спец.символов от LIKE - "%" и "_" - их надо эскейпить в LIKE и неэскейпить в LOCATE