MySQL中查找两列重复文本记录及去重后文本总数的最优查询方法
MySQL两列文本重复记录查询与去重统计
一、查找两列文本内容重复的记录
假设你的表名为your_table,两个text列分别是col1和col2,直接高效的查询语句如下:
SELECT * FROM your_table WHERE col1 = col2;
如果需要忽略文本首尾的空白字符差异,可使用TRIM()函数优化:
SELECT * FROM your_table WHERE TRIM(col1) = TRIM(col2);
若表数据量较大,建议为col1和col2创建前缀索引(text列无法直接创建普通索引)来提升查询效率:
CREATE INDEX idx_col1_trim ON your_table (TRIM(col1)); CREATE INDEX idx_col2_trim ON your_table (TRIM(col2));
二、统计两列去除重复项后的文本总数
通过合并两列数据并去重后统计总数,语句如下:
SELECT COUNT(DISTINCT combined_text) AS unique_total FROM ( SELECT col1 AS combined_text FROM your_table UNION SELECT col2 AS combined_text FROM your_table ) AS temp;
同样,若需忽略首尾空白,可加入TRIM()处理:
SELECT COUNT(DISTINCT TRIM(combined_text)) AS unique_total FROM ( SELECT TRIM(col1) AS combined_text FROM your_table UNION SELECT TRIM(col2) AS combined_text FROM your_table ) AS temp;
内容的提问来源于stack exchange,提问作者Jexi
相关产品推荐
相关产品推荐

