每个<ul class="pagination">
<?php
$search_str = '';
if ($search) {
$search_str = "&search=" . urlencode($search);
}
for ($i = 1; $i <= $total_page; $i++)
echo "<li class='" . ($page_id == $i ? 'active' : '') . "'><a href='index.php?page=" . $i . $search_str . "'>$i</a></li>";
?>
</ul>
删除重复项:
我必须编写一个通用com_id
来删除世界末尾的vald记录(DELETE
)
如果:
查询是:
vald_to = 9999-01-01
该脚本删除com_id
的所有记录答案 0 :(得分:0)
你可以使用rowid,这个delete
为我工作:
delete from c
where rowid in (
select rwd
from (
select rowid rwd,
row_number() over (partition by com_id order by null) dup
from c
where tar_id = -1
and vald_from = date '0001-01-01'
and vald_to = date '9999-01-01' )
where dup > 1 );
答案 1 :(得分:0)
我真的不明白你认为你想删除的副本。所以只是猜测:当你的范围被另一条记录覆盖时,你正在考虑重复记录。 E.g:
COM_ID vald_from vald_to 123 0001-01-01 9999-01-01 123 0001-01-01 2017-01-01
第二个记录是多余的,因为它的范围只是第一个记录的较大范围的一部分。但同样的情况也是如此:
COM_ID vald_from vald_to 123 2016-01-01 2017-01-01 123 2016-02-01 2016-03-01
同样,第二个记录的范围只是第一个记录的一部分。
删除那些多余记录的查询将是:
delete from c
where exists
(
select *
from c other
where other.com_id = c.com_id
and other.vald_from <= c.vald_from
and other.vald_to >= c.vald_to
and other.rowid <> c.rowid
)
and tar_id = -1;
我不知道,你是否也想在子查询中使用tar_id = -1
。也许你仍然想以某种方式限制日期date '0001-01-01'
和date '9999-01-01'
。如果是,请相应地调整声明。