mysql-substr-count_green

Моему другу понадобилось подсчитать с помощью MySQL число вхождений подстрок в строке, так как подобной функции в MySQL не имеется, то я составил свой запрос.

По функциональности это аналог PHP функции substr_count.

Итак, рассмотрим реализацию на примере исходных данных моего друга:

  • «(1)(29)(330)» — допустим строка в выборке;
  • «)» — используемый нами разделитель.
SELECT
  (CHAR_LENGTH('(1)(29)(330)') - CHAR_LENGTH(REPLACE('(1)(29)(330)',')','')))
div
  CHAR_LENGTH(')');
  1. Тут все элементарно, вычисляется разность между количеством символов целой строки
    CHAR_LENGTH('(1)(29)(330)')

    и количеством символов строки, у которой заменен на пустоту — наш разделитель

    REPLACE('(1)(29)(330)',')','')
  2. Считаем количество символов нашего разделителя
    CHAR_LENGTH(')')

Потом вычисляется целочисленный остаток от деления (1) на (2).

В результате мы получим число «3».


Комментарии (25) на запись «MySQL. Количество вхождений подстроки в строку»

» Трекбеки скрыты, показать их?
  1. Возвращение блудного попугая… | Мастерская интернет-разработчика | 20.02.2009 в 17:23

    [...] MYsql + " подстрока" в выборке [...]

  2. Wordpress плагин Hyper Cache 2.0 | Мастерская интернет-разработчика | 12.03.2009 в 19:24

    [...] mysql substr [...]

  3. Что такое Google Локатор? | Мастерская интернет-разработчика | 16.03.2009 в 17:11

    [...] php количество вхождений подстроки Google [...]

  4. Сжимаем сайт при помощи mod_deflate | Мастерская интернет-разработчика | 19.03.2009 в 15:41

    [...] mysql количество вхождений [...]

  5. FreeBSD. Установка и настройка Subversion | Мастерская интернет-разработчика | 23.03.2009 в 20:49

    [...] my sql substring FreeBSD, Subversion, Svn [...]

  6. Москва - не тонет ;) | Мастерская интернет-разработчика | 25.03.2009 в 10:24

    [...] MySQL substr [...]

  7. Получаем ID3-теги с помощью PHP | Мастерская интернет-разработчика | 25.03.2009 в 16:27

    [...] mysql количество строк [...]

  8. Google Non-AJAX Language API | Мастерская интернет-разработчика | 25.03.2009 в 17:11

    [...] mysql количество [...]

  9. ImageCrop с помощью jQuery, плагина imgAreaSelect и PHP GD. | Мастерская интернет-разработчика | 25.03.2009 в 17:12

    [...] с# число вхождений подстроки Оставить комментарий Comment RSS | Теги: GD, ImageMagick, jQuery, PHP Назад: Сжимаем и минимизируем CSS при помощи Code Beautifier Далее: Google Non-AJAX Language API [...]

  10. Яндекс.Фотки — плагин для Wordpress | Мастерская интернет-разработчика | 26.03.2009 в 13:17

    [...] число вхождений подстроки в строку в mysql [...]

  11. Пейнтбол | Мастерская интернет-разработчика | 27.03.2009 в 16:50

    [...] количество строк mysql [...]

  12. Сделал новый сервис browsInfo! | Мастерская интернет-разработчика | 28.03.2009 в 11:39

    [...] количество подстрок в строке php [...]

  13. Hello, World! | Мастерская интернет-разработчика | 30.03.2009 в 15:27

    [...] php количество вхождений в строке [...]

  14. Пора делать свой код совместимым с PHP 6 | Мастерская интернет-разработчика | 30.03.2009 в 16:51

    [...] php количество символов в строке [...]

  15. CATAHИCT | 19.05.2009 в 02:46

    Я, хоть и не ваш постоянный читатель, но всё же выскажу свое мнение. На ваш сайт попал практически случайно. Однако узнал много чего нового и интересного. Так что, как говорится, ПЕШЫ ИСЧО :)

  16. Daimon | 14.07.2009 в 10:29

    Да)

  17. Строим | 12.09.2009 в 12:27

    А можно ли использовать подобный метод для массива с перечислением символов?

  18. adw0rd | 12.09.2009 в 14:15

    Что? Подробнее...

  19. splash | 09.10.2009 в 09:41

    Можно ли как-то составить запрос, который определит входят ли элементы массива в строку поля?

    Задача:

    Хочу выбрать роботов из строки useragent:

    есть строки в таблице:

    1. Yandex/1.01.001 (compatible; Win16; m)

    2. Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)

    3. Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.0.3) Gecko/2008092417 Firefox/3.0.3 WebMoney Advisor

    имеется массив с именами ботов (Yandex,Googlebot)

    Как выбрать SQL запросом первые 2 строки?

  20. Алексей | 09.07.2010 в 12:03

    Молодцом! и чего только не придумает изощренный мозг программера)

  21. dima.rus | 14.10.2010 в 17:36

    Спасибо огромное! Требовалось найти число символов в строке на mysql, это то что надо.

  22. Катя | 03.02.2011 в 13:21

    Спасибо! Элегантно :-)

  23. Ать | 18.05.2011 в 13:06

    Чувак, ты гений! Плюс плюс плюс!

  24. rus1978 | 07.10.2011 в 14:44

    Если придумал сам, а не нашол в интернете, присоеденяюсь к Ать.

    Даже в избранное сайт добавлю, посмотрю детальнее Ваш ресурс)

  25. Илья | 09.05.2012 в 23:33

    Спасибо, применил! :)

Оставить комментарий