Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > MySQL > Число вхождений строки в строку


Автор: Analyzer 10.5.2008, 00:50
Добрый вечер!
Подскажите пожалуйста можно ли средствами MySql подсчитать число вхождений строки в в переменной типа Varchar.
пример:
поле Varchar - 'мама мыла раму мама'
задача - найти число вхождений слова 'мама'
результат integer 2
спасибо!

Автор: Magnifico 10.5.2008, 19:42
Код

select (char_LENGTH('мама мыла раму мама') - char_LENGTH(replace('мама мыла раму мама','мама',''))) / char_LENGTH('мама')

Автор: Analyzer 10.5.2008, 20:25
Magnifico cпасибо большое! Метод понял, пример поюзал smile

Автор: Akina 10.5.2008, 21:59
Не все так просто - во фразе "мама делала мамалыгу" тоже будет посчитано 2 вхождения.

Автор: skyboy 10.5.2008, 22:23
Akina, так автор теемы не про вхождения слов, а про подстроки говорил. так что все в порядке.
по крайней мере, соответсвует условиям, изложенным в первом посте

Автор: Analyzer 10.5.2008, 23:12
Все в порядке,ищем именно подстроки )

Автор: Akina 11.5.2008, 17:04
Другой вариант - ищем подстроку "мама" в строке "мамама". Сколько их? А сколько на самом деле?

Автор: skyboy 11.5.2008, 17:28
Цитата(Akina @  11.5.2008,  16:04 Найти цитируемый пост)
А сколько на самом деле? 

и правда - сколько их? smile
стоит девушка и парень: брат и сестра. сколько ты видишь перед собой родственников:
- 2(два человека в родственных отношениях)
- 4(у парня есть сестра - 2, плюс у девушки есть брат - 2) smile
Может, поинтересуешься задачей, если не веришь, что топикстартер может оценить адекватность решения?

Автор: Akina 11.5.2008, 21:40
Цитата(skyboy @  11.5.2008,  18:28 Найти цитируемый пост)
Может, поинтересуешься задачей, если не веришь, что топикстартер может оценить адекватность решения?

Давай обойдемся без сарказма. Лучше рассмотреть все краевые и убедиться, что они топикстартера не пугают, но по крайней мере быть уверенными, что впоследствии не будет воплей типа "а-а-а! не так работает!".
PS. Тем более что вопрос сильно смахивает на зачетный...

Автор: skyboy 13.5.2008, 09:17
согласен.
впрочем, сарказма там не было smile

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)