SELECT aa.* FROM `ap_article` aa LEFT JOIN ap_article_config aac ON aa.id = aac.article_id <where> and aac.is_delete != 1 and aac.is_down != 1 <!-- loadmore --> <if test="type != null and type == 1"> and aa.publish_time <![CDATA[<]]> #{dto.minBehotTime} </if> <if test="type != null and type == 2"> and aa.publish_time <![CDATA[>]]> #{dto.maxBehotTime} </if> <if test="dto.tag != '__all__'"> and aa.channel_id = #{dto.tag} </if> </where> order by aa.publish_time desc limit #{dto.size} </select>大致意思
时间: 2024-02-14 09:26:58 浏览: 86
ORC_SELECT.rar_oracle_select orac
这段代码是一个使用 MyBatis 框架编写的 SQL 查询语句,用于从数据库表 `ap_article` 中查询文章数据。以下是该代码的大致意思:
1. 通过左连接将 `ap_article` 表和 `ap_article_config` 表关联起来,关联条件是 `ap_article` 表的 `id` 字段等于 `ap_article_config` 表的 `article_id` 字段。
2. 使用 `<where>` 标签包裹条件语句,该标签可以根据条件动态生成 WHERE 子句。
3. 在条件语句中,排除了 `ap_article_config` 表中 `is_delete` 字段值为 1 和 `is_down` 字段值为 1 的记录。
4. 根据不同的条件,动态生成了三个条件子句:
- 如果 `type` 不为空且等于 1,则添加一个条件,要求 `aa.publish_time` 小于 `#{dto.minBehotTime}`。
- 如果 `type` 不为空且等于 2,则添加一个条件,要求 `aa.publish_time` 大于 `#{dto.maxBehotTime}`。
- 如果 `dto.tag` 不等于 '__all__',则添加一个条件,要求 `aa.channel_id` 等于 `#{dto.tag}`。
5. 使用 `order by` 子句按照 `aa.publish_time` 字段降序排序。
6. 使用 `limit` 子句限制查询结果的数量为 `#{dto.size}`。
请注意,上述代码中的 `${dto}`、`#{dto.minBehotTime}`、`#{dto.maxBehotTime}` 和 `#{dto.size}` 这些占位符需要根据实际情况替换为具体的参数值。
阅读全文