За последние 24 часа нас посетили 19014 программистов и 1741 робот. Сейчас ищет 1141 программист ...

MySQL. Количество вхождений подстроки в строку

Тема в разделе "MySQL", создана пользователем adw0rd, 9 июл 2009.

  1. adw0rd

    adw0rd Активный пользователь

    С нами с:
    10 ноя 2008
    Сообщения:
    12
    Симпатии:
    0
    Адрес:
    Санкт-Петербург
    Моему другу понадобилось подсчитать с помощью MySQL число вхождений подстрок в строке, так как подобной функции в MySQL не имеется, то я составил свой запрос.

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

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

    • * "(1)(29)(330)" — допустим строка в выборке;
      * ")" — используемый нами разделитель.

    [sql]
    SELECT
    (char_length('(1)(29)(330)') - char_length(REPLACE('(1)(29)(330)',')','')))
    div
    char_length(')');
    [/sql]

    1. Тут все элементарно, вычисляется разность между количеством символов целой строки
    [sql]char_length('(1)(29)(330)')[/sql]

    и количеством символов строки, у которой заменен на пустоту — наш разделитель
    [sql]REPLACE('(1)(29)(330)',')','')[/sql]
    2. Считаем количество символов нашего разделителя
    [sql]char_length(')')[/sql]

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

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

    Кросспост http://adw0rd.ru/2009/mysql-substr-count/
     
  2. Koc

    Koc Активный пользователь

    С нами с:
    3 мар 2008
    Сообщения:
    2.253
    Симпатии:
    0
    Адрес:
    \Ukraine\Dnepropetrovsk
    э как тебя сегодня понесло)

    Есть что-то на тему решения проблемы regexp'ов в мускле при UTF-8 и русских символах?
     
  3. adw0rd

    adw0rd Активный пользователь

    С нами с:
    10 ноя 2008
    Сообщения:
    12
    Симпатии:
    0
    Адрес:
    Санкт-Петербург
    А для какой темы? Поиск данных?
     
  4. Koc

    Koc Активный пользователь

    С нами с:
    3 мар 2008
    Сообщения:
    2.253
    Симпатии:
    0
    Адрес:
    \Ukraine\Dnepropetrovsk
    http://www.php.ru/forum/viewtopic.php?t ... hlight=utf
     
  5. Koc

    Koc Активный пользователь

    С нами с:
    3 мар 2008
    Сообщения:
    2.253
    Симпатии:
    0
    Адрес:
    \Ukraine\Dnepropetrovsk
    короче я предлагаю следующую статью посвятить именно этому вопросу.