我试图禁止使用此请求从表中重复:
DELETE FROM tb_entry t1
WHERE entry_id < ANY (SELECT entry_id
FROM tb_entry t2
WHERE t1.entry_id <> t2.entry_id
AND t1.entry_sdate = t2.entry_sdate
AND t1.entry_edate = t2.entry_edate
AND t1.entry_nid = t2.entry_nid
AND t1.entry_msg_grp = t2.entry_msg_grp)
我遇到的第一个错误是:
near "t1": syntax error: DELETE FROM tb_entry t1
我应该怎么做才能使其正常工作?
最佳答案
我不认为SQLite允许delete
中使用别名。尝试:
DELETE FROM tb_entry
WHERE entry_id > (SELECT MIN(t2.entry_id)
FROM tb_entry t2
WHERE tb_entry.entry_sdate = t2.entry_sdate AND
tb_entry.entry_edate = t2.entry_edate AND
tb_entry.entry_nid = t2.entry_nid AND
tb_entry.entry_msg_grp = t2.entry_msg_grp
);
我重写了逻辑,以引用最小的
id
。我认为这比< ANY
容易得多,在关于sql - 抑制Sqlite数据库上的重复项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48907930/