php+mysql: Подсчитать количество вхождений каждого символа в базе

160
17 октября 2018, 22:50

Есть таблица БД с текстовыми полями ~30млн. записей UTF-8.

Необходимо подсчитать количество вхождений каждого символа во всей базе.

Результат - что-то вроде:

А - 235235434 шт.

Б - 23568285 шт.

.... и т.д.

Answer 1
SELECT c.letter, SUM(LENGTH(t.field) - LENGTH(REPLACE(t.field, c.letter, ''))) `count`
FROM table t, (SELECT 'A' letter
               UNION
               SELECT 'B'
               UNION
               -- 
               SELECT 'ю'
               UNION
               SELECT 'я'
              ) с
GROUP BY c.letter

Для генерации таблицы символов (она необходима!) можно использовать любой другой способ. И даже создать такую таблицу (это вообще самый правильный вариант).

Если в исходной таблице несколько полей и надо посчитать по отдельности - добавить соотв. количество SUM() в выходной набор. А если надо посчитать вместе - заменить field на CONCAT(field1, field2, ...).

READ ALSO
Как в Composer сделать update только одного плагина?

Как в Composer сделать update только одного плагина?

У меня в проекте соедини много плагинов но нужно сделать update только одного или двух плагинов , как можно это сделать ?

186
Правильная ли практика хранить в базе данных html code?

Правильная ли практика хранить в базе данных html code?

Есть PHP Laravel проект где в базе данных хранится и выводится html код, общепринятая ли это практика или пример плохого кода, можно ли без этого...

156
Zend engine ошибка

Zend engine ошибка

Написал расширение на Zend Engine,которая декодирует(База64) PHP и выполняетНо при выполнении выходит ошибка

156