mybatis之in和charindex的使用

mybatis之in的使用   

大家在一条sql中传入多个查询数据时都会使用的in关键字,可是在sql中明明好好的执行,到了程序中要么报错要么查询为空。原因在于在mybatis中,默认in属性为传递多个数据,则需要遍历循环去读取,外部通过数组或者集合的方式传入,示例如下

   Java调用代码

 String[] cIdArrays = cId.split(",");
        List> queryCourseTypeInfo = eduCourseExtMapper.queryCourseTypeInfo(cIdArrays,pageCode);

   Mapper.java代码

List> queryCourseTypeInfo(@Param("arrays") String[] arrays, @Param("pageCode") Integer pageCode);

   mapper.xml代码

此处去Mapper.java中params为arrays的数组进行遍历,然后读取数组中的值就可以达到in关键字的效果,讲道理之前没怎么用这个操作,傻乎乎的一个人弄了好久,还得继续学习。

 

charindex的使用

mybatis之in和charindex的使用_第1张图片

话不多说先上图,其实和java中的indexOf有些类似,用于定位某个元素,大家再来看看我的需求

需求:一个字段为.123.456.的参数,我需要截取第一个点后到第二点前的数据,我的sql片段如下:

substring(t4.seq,2,charindex('.',t4.seq,2)-2)

起始点为第二个下标,止于第五个下标前,但是...charindex返回给我的并不是第二点的真实下标,所以我后面采用了-2的操作,这样就有一点没有用到定位indexOf的操作,如果哪位朋友有见解欢迎评论滴滴我

 

你可能感兴趣的:(数据库)