Количество определенных символов в MySQL столбце




3699
Количество определенных символов в MySQL столбце
Рейтинг 9 из 10. Голосов: 81
Ваша оценка:
Для посчета количества символов в строке (просто количества символов) служит функция:

CHAR_LENGTH(str)

например:

SELECT CHAR_LENGTH(mycol) FROM mytable;


Для подсчета количество определенных символов (например, разделителей) в строке придется написать запрос (например, чтобы посчитать количество символов ':') :

SELECT (CHAR_LENGTH(mycolumn) - CHAR_LENGTH(REPLACE(mycolumn,':',''))) div CHAR_LENGTH(':') FROM mytable;

Т.е. мы:
а) Считаем количество символов вообще
б) Заменяем нужные нам символы на пустоту
в) Считаем количество символов в строке без нужных нам к подсчету
г) Т.к. под "разделителем" может быть и многобайтовая строка - считаем длинну строки
д) Делением получаем количество вхождений разделителя в строку


Чтобы посчитать максимальное количество символов во всех строках столбца определенного вида - к выше изложенной записи добавляем впереди функцию MAX():

SELECT MAX((CHAR_LENGTH(mycolumn) - CHAR_LENGTH(REPLACE(mycolumn,':',''))) div CHAR_LENGTH(':')) FROM mytable;

Вопросы и ответы

Раскольникова
2020-07-15 22:08:10
SQL запрос: Документация SELECT (CHAR_LENGTH(mycolumn) - CHAR_LENGTH(REPLACE(mycolumn,':',''))) div CHAR_LENGTH(':') FROM mytable; Ответ MySQL: Документация #1583 - Incorrect parameters in the call to native function 'CHAR_LENGTH'

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

ответить