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




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

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;

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


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'
(CHAR_LENGTH('mycolumn') - CHAR_LENGTH(REPLACE('mycoffflumn',':','' ))) div CHAR_LENGTH(':')
-3
какая версия MySQL?