在 MySQL 中,可以使用以下 SQL 语句来实现查询关键词字段中不重复词语的目的:
SELECT DISTINCT
SUBSTRING_INDEX(
SUBSTRING_INDEX(gjczd, '|', n.n),
'|',
-1
) AS keyword
FROM
qwer.qaz
CROSS JOIN (
SELECT
a.N + b.N * 10 + 1 n
FROM
(SELECT 0 AS N UNION ALL SELECT 1 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) a
,(SELECT 0 AS N UNION ALL SELECT 1 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) b
ORDER BY n
) n
WHERE
n.n <= LENGTH(REPLACE(gjczd, '|', '')) + 1
其中:
主要的思路就是用组合数来获取所有的词语然后去重,再把所有词语返回。