Подсчет слов в столбце строка за строкой в ​​MySQL - PullRequest
0 голосов
/ 24 мая 2019

Мне нужно построить запрос, чтобы извлечь количество каждой строки в строке. Пример

Таблица продуктов Описание столбца

+----+---------------------------------------------+
| Id | Description                                 |
+----+---------------------------------------------+
| 1  | Love test Love by Love                      |
| 2  | Value of Value is Value of Value the Value  |
+----+---------------------------------------------+

Результат может быть

+---+------+---------+
| 1 | Love | 3 times |
| 1 | test | 1 time  |
| 1 | by   | 1 time  |
+---+------+---------+

+---+-------+---------+
| 2 | Value | 5 times |
| 2 | of    | 2 times |
| 2 | is    | 1 times |
| 1 | the   | 1 times |
+---+-------+---------+

Ответы [ 2 ]

1 голос
/ 24 мая 2019

Этот следующий скрипт вернет желаемый результат. Код взят из Здесь

SELECT ID, concat(transcription,' ',COUNT(*),' Times')
FROM
(
    SELECT ID,SUBSTRING_INDEX( SUBSTRING_INDEX( Description, ' ', l10.n * 10 + l1.n + 1), ' ', -1) AS transcription
    FROM Product
    CROSS JOIN (
        SELECT 1 AS n UNION ALL SELECT 2 UNION ALL SELECT 3 UNION ALL SELECT 4 UNION ALL SELECT 5 UNION ALL SELECT 6 UNION ALL SELECT 7 UNION ALL SELECT 8 UNION ALL SELECT 9 UNION ALL SELECT 0
    ) l1
    CROSS JOIN (
        SELECT 1 AS n UNION ALL SELECT 2 UNION ALL SELECT 3 UNION ALL SELECT 4 UNION ALL SELECT 5 UNION ALL SELECT 6 UNION ALL SELECT 7 UNION ALL SELECT 8 UNION ALL SELECT 9 UNION ALL SELECT 0
    ) l10
    WHERE LENGTH(Description) - LENGTH( REPLACE( Description, ' ', '')) >= l10.n * 10 + l1.n
)A
GROUP BY ID, transcription;
0 голосов
/ 24 мая 2019

Вам нужно запустить COUNT для текста.

SELECT ID, COUNT(Description) AS Times
FROM TableName
GROUP BY ID
...