问题描述:父级栏目政府信息公开目录,下面会有几百个栏目,如何才能绕过开发人员编码,用置标实现调用最新的5条文档呢?
问题分析:调用父级栏目最新的文档,会出现某几个栏目不调用的情况,如何做where限制条件呢?是否可以通过限制栏目id实现呢?
解决方案一:当不做限制条件时候,直接调用最新的5条文档
<@cms_documents id="父栏目唯一性名称" childindex="-3" count="int型整数" begin="0">
<@cms_document field="title" autolink="true" maxlength="30" cutsuffix=""/>
</@cms_documents>
解决方案二:当做了限制条件时候,筛选调用最新的5条文档
<@cms_documents id="父栏目唯一性名称" childindex="-3" count="int型整数" begin="0" where="chanDoc.channel.id not in (4,5,6,7,8...输入你不调用信息的栏目ID)">
<@cms_document field="title" autolink="true" maxlength="30" cutsuffix=""/>
</@cms_documents>
这里解释一下,为什么采用not in()
1.通过过滤栏目唯一性名称也可以实现,但是唯一性名称汉字太多,过滤栏目较多情况下,我们需要写很多汉字,浪费时间,效率太低;
2.这里不采用chanDoc.channel.id !=(4,5,6,7,8...),因为在我们使用childindex="-3",相当于是chanDoc.channel.id in(1,2,3....);此时SQL语法中同时出现了in和!=,!=是不会被执行的,为什么不会执行,请自行度娘SQL语法结构;
3.为什么不用其他字段来过滤呢?因为啰嗦,浪费时间,用chanDoc.channel.id,过滤只是一个数字,SQL的执行效果要稍微高那么一点点。
© 2012-2024七七世界网站建设 20707.net 1125w.com 版权所有 豫ICP备14018694号-1