我有一个存储电子邮件的大表(约 678,000 行),我需要删除与电子邮件字段匹配的重复记录:收件人、发件人、主题、正文以及外键 record_id。
通常我会使用以下语句来删除重复项:
DELETE
FROM emails
WHERE email_id NOT IN (
SELECT MAX(email_id) FROM emails
GROUP BY record_id, from_add, to_add, subject, body)
Run Code Online (Sandbox Code Playgroud)
但是, body 是 datatype text
,因此无法比较/分组。它在选择查询上给出以下错误消息:
The text, ntext, and image data types cannot be compared or sorted, except when using IS NULL or LIKE operator.
Run Code Online (Sandbox Code Playgroud)
用text
数据类型识别重复项的最佳方法是什么?我是否必须varchar
先将列转换为?