【发布时间】:2014-10-20 16:42:24
【问题描述】:
我在尝试执行此查询时遇到错误,因为 MySQL 意识到我正在尝试通过来自同一表上的 JOIN 的一组结果来删除一些记录。
如何重写查询?
DELETE FROM hr_descr2
WHERE
id IN (SELECT
a.id
FROM
hr_descr2 a,
hyperreview_descr b
WHERE
a.titolo = b.titolo
AND a.recensione != b.recensione
AND a.recensione != ''
AND b.recensione != ''
AND ABS(LENGTH(a.recensione) - LENGTH(b.recensione)) > 40);
我也尝试过以这种方式重写查询,但它不起作用:
WITH temp AS(SELECT
a.id
FROM
hr_descr2 a,
hyperreview_descr b
WHERE
a.titolo = b.titolo
AND a.recensione != b.recensione
AND a.recensione != ''
AND b.recensione != ''
AND ABS(LENGTH(a.recensione) - LENGTH(b.recensione)) > 40)
DELETE FROM hr_descr2
WHERE
id IN (select id from temp);
【问题讨论】:
标签: mysql