sql как показать частый список встречающихся слов в name? sql
SELECT
word,
COUNT(*) AS word_count
FROM (
SELECT
TRIM(SUBSTRING_INDEX(SUBSTRING_INDEX(products.name, ' ', numbers.n), ' ', -1)) AS word
FROM
products
JOIN
(SELECT 1 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 10) numbers
ON
CHAR_LENGTH(products.name) - CHAR_LENGTH(REPLACE(products.name, ' ', '')) >= numbers.n - 1
) words
WHERE
word != ''
GROUP BY
word
HAVING
word_count > 1
ORDER BY
word_count DESC;