我有这样的结构:table hits
包含以下示例数据:
page_alpha_id ok_id ip
------------- ------------ -----------
zfuUnu4K11R9C 100255884520 95.73.30.67
wL77qKOmSTFW 100279470528 91.39.146.76
OArxea90 100307614632 176.50.251.94
wefweffew 100307614632 126.40.251.94
yuSb4zzRs 100326443828 93.88.21.86
OxyCtgwlwRFX 100356656755 93.223.88.254
ukwY8SpBT5crX 100375258476 81.4.193.238
ifmgtm7QC 100488290479 95.71.3.15
我如何DELETE
列ok_id
中包含重复项的行?
删除哪一行无关紧要。
答案 0 :(得分:1)
您可以将delete
与join
一起使用,假设其他列中的一列具有每个ok_id
的不同值。例如:
delete h
from hits h join
(select ok_id, max(page_alpha_id) as maxpad
from hits h
group by ok_id
) hmax
on h.ok_id = hmax.ok_id and h.page_alpha_id < hmax.maxpad;
答案 1 :(得分:0)
使用特殊连接语法进行删除:
delete a
from hits a
join hits b on a.ok_id = b.ok_id
and a.page_alpha_id > b.page_alpha_id
&#34;技巧&#34;这使得这项工作是一个额外的大于条件,它既可以阻止行加入自己,也只能在连接的一侧选择。