数据服务支持通过脚本模式来生成API,脚本模式下支持基础SQL和高级SQL,其中高级SQL涵盖了Mybatis语法的常见标签类型:if、choose、when、otherwise、trim、foreach、where,您可以借助标签语法来灵活实现空值校验、多值遍历、动态查表、动态排序及聚合等复杂查询逻辑,本文为您介绍常见场景的代码示例。
示例1:通过条件控制返回结果按照不同的表字段进行排序
select col01,col02
from table_name
<choose>
<when test='var == 1'>
order by col01
</when>
<when test='var == 2'>
order by col02
</when>
<when test='var == 3'>
order by col01,col02
</when>
<when test='var == 4'>
order by col02,col01
</when>
</choose>
- 请求参数:
参数名称 参数类型 参数位置 是否必填 示例值 默认值 描述 var INT QUERY 是 1 1 排序方式 - 返回参数:
参数名称 参数类型 示例值 col01 STRING 小明 col02 STRING beijing
示例2:通过条件控制查询不同的数据表
select col01
from
<choose>
<when test='var == 1'>
table_name01
</when>
<when test='var == 2'>
table_name02
</when>
</choose>
- 请求参数:
参数名称 参数类型 参数位置 是否必填 示例值 默认值 描述 var INT QUERY 是 1 1 排序方式 - 返回参数:
参数名称 参数类型 示例值 col01 STRING 小明
示例3:通过判断字段值是否为空来控制where查询条件是否保留,即:当请求参数非必填时的查询逻辑
SELECT id, name, code
FROM table_name
<where>
<if test='list!=null'>
code in
<foreach collection="list" open="(" close=")" separator="," item="code_num">
${code_num}
</foreach>
</if>
</where>
- 请求参数:
参数名称 参数类型 参数位置 是否必填 示例值 默认值 描述 list STRING_LIST QUERY 是 北京市,杭州市 北京市,杭州市 排序方式 - 返回参数:
参数名称 参数类型 示例值 id STRING 123 name STRING 小明 code STRING st123