[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: взять из текста первые n слов
olgatcpip
Здравствуйте,
как взять из текста первые n слов. возможно ли это сделать sql запросом?






Спустя 13 минут, 42 секунды (8.07.2009 - 12:29) twin написал(а):
Вот 10 первых слов:

SQL
SUBSTRING_INDEX(`text`,' ',10) AS `text`

Спустя 28 минут, 7 секунд (8.07.2009 - 12:57) sergeiss написал(а):
olgatcpip - ты, вроде бы, Посгре используешь? Там можно ведь и регулярные выражения использовать прямо в запросе (а заодно это и камень в огород ярых любителей MySQL tongue.gif).

Сам запрос (точный синтаксис) я не могу подсказать, тут думать надо smile.gif Но используются "стандартные" POSIX регулярные выражения - это точно.

Спустя 6 минут, 28 секунд (8.07.2009 - 13:04) twin написал(а):
Во первых тут не нужно никаких регулярок.
А во вторых, кто тебе сказал, что в мускуле нельзя их использовать?
Цитата
(а заодно это и камень в огород ярых любителей MySQL )

Недолет. biggrin.gif

Спустя 40 минут, 46 секунд (8.07.2009 - 13:45) olgatcpip написал(а):
SQL
SUBSTRING_INDEX(`text`,' ',10) AS `text`

в постгере не сработает?

мне просто интересно, я никогда не пользовалась таким и не знаю что написать в поисковике, чтобы примерчик мне выдал.
Вот и написала вам. Теперь примерно знаю как их (поисковиков) спросить поищу слово SUBSTRING (SUBSTRING_INDEX вроде нет постгресе). спасибо.

Цитата (sergeiss @ 8.07.2009 - 09:57)
Сам запрос (точный синтаксис) я не могу подсказать, тут думать надо smile.gif

да.. регулярки это хорошо, но думать там надо, поэтому я их немного избегаю.
+ ни разу не пользовалась, скиньте ссылочку на описание, почитаю smile.gif

Спустя 42 минуты, 47 секунд (8.07.2009 - 14:27) sergeiss написал(а):
Я тут немного "помедитировал"... Пришел вот к чему.

Если бы у меня была такая задача, то я сделал бы новую функцию, аналогичную substring_index, которой нету в Постгре.
Начинка у нее будет простая smile.gif Берем regexp_split_to_table, получаем все слова из переменной, с разбивкой по пробелам. Из нужных слов (строк) формируем возвращаемую величину.
В хэлпе по этой функции приведен такой пример:
---
Some examples:

SELECT foo FROM regexp_split_to_table('the quick brown fox jumped over the lazy dog', E'\\\s+') AS foo;
foo
--------
the
quick
brown
fox
jumped
over
the
lazy
dog
(9 rows)
---

Спустя 4 часа, 13 минут, 7 секунд (8.07.2009 - 18:41) olgatcpip написал(а):
круууто smile.gif


_____________
Ласковое слово и кошке приятно... Плюсик в карму сойдет wink.gif
*smarty дока - новая любовь
Моё рукотворение ругайте, хвалите smile.gif
Веду маленький блог
в этом блоге публикую новые работы
WMR217126627282 wink.gif

Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.