Oracle模糊查询,foreach用法,树结构查询,group by简单总结

mybatis模糊查询:
oracle:
法一:
'%${name}%' :缺点就是会被SQL注入
法二:
CONCAT('%',#{search_name},'%') 
法三:
'%'||#{search_name}||'%'

mysql:
CONCAT('%',#{search_name},'%')


执行顺序:
    1. 根据where子句选择行;
    2. 根据group by 子句组合行;
    3. 根据having子句筛选组;
    4. 根据order by子句中的分组函数的结果对组进行排序,order by必须使用分组函数或者使用Group by。



foreach用法: 
item的值任意,DAO接口参数名任意,item的变量名为单个变量#{one}
1.传入参数为单参数且参数类型为list,collection只能是list,而不是参数名,
<foreach collection="list" item="one" index="index" open="(" close=")" separator=",">
#{one}
</foreach>
2.传入参数为单参数且参数类型为array,collection属性值只能是array 例如: String[] test=["a","b","c"];
<foreach collection="array" item="one" index="index" open="(" close=")" separator=",">
#{one}
</foreach>
3.传入参数是多个(例如map或者实体类),collection的属性值就会是map里面的key或者实体类的变量名
<foreach collection="mylist" item="one" index="index" open="(" close=")" separator=",">
#{one}
</foreach>


树结构查询:
select * from tablename start with cond1
connect by cond2
where cond3;
cond1是根结点的限定语句,可以放宽条件,已取得多个根节点(多棵树)


cond2是连接条件,用PRIOR表示上一条记录,PRIOR后面的变量是上一条记录的变量,后一个记录就是目前这条记录的变量
如CONNECT BY PRIOR ID=PRAENTID就是说上一条记录的ID是本条记录的PRAENTID;
prior:在...之前

COND3是过滤条件,用于对返回的所有记录进行过滤。


子节点回溯:

select * from table start with id = 10 connect by prior parentId = id; 表示前一个数据的id等于目前的parentId ,prior后面跟着的字段为当前数据字段


根节点遍历:

select * from table start with parentId = -1 connect by prior id = parenId;



  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值