使用ibatis进行查询,我想查询一个字段有多个值得时候的结果,sql语句是这样的

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用ibatis进行查询,我想查询一个字段有多个值得时候的结果,sql语句是这样的相关的知识,希望对你有一定的参考价值。

select * from eadept ea where ea.deptid in ('001008','001009','001010','001007')

从你的dao层传值过来。因为是多个变量,所以要用map传。
ibatis配置文件中写:
select * from eadept ea where ea.deptid in (#id1#,#id2#,#id3#,#id4#)。
dao层里面用map封装:
map.put("id1","001008");
map.put("id2","001009");
map.put("id3","001010");
map.put("id4","001007");
然后把map传过去就行。试试把!希望对你有帮助!
参考技术A 官网的文档有说明的。

<select id="dynamicForeachTest" resultType="Blog">
select * from t_blog where id in
<foreach collection="list" index="index" item="item" open="(" separator="," close=")">
#item
</foreach>
</select>

public void dynamicForeachTest()
SqlSession session = Util.getSqlSessionFactory().openSession();
BlogMapper blogMapper = session.getMapper(BlogMapper.class);
List<Integer> ids = new ArrayList<Integer>();
ids.add(1);
ids.add(3);
ids.add(6);
List<Blog> blogs = blogMapper.dynamicForeachTest(ids);
for (Blog blog : blogs)
System.out.println(blog);
session.close();


如果不行,换MyBatis

使用多个模式进行查询 - Dbeaver

【中文标题】使用多个模式进行查询 - Dbeaver【英文标题】:Query with multiple schemas - Dbeaver 【发布时间】:2020-10-20 13:28:02 【问题描述】:

我在一个 db 下有 5 个模式。其中 3 个具有完全相同的表和字段。 我想创建一次调用这 3 个模式的查询。 我正在使用 DBeaver 版本 7.2.2

我已经选中了“使用全局搜索”框,但没有帮助。 也许我需要在 sql 编辑器本身中做一些事情?

例如,我想调用“用户”表,它会为我提供所有 3 个表中的数据。

【问题讨论】:

【参考方案1】:

我认为您需要单独调用所有三个模式/表。不过,您仍然可以一次性返回所有结果。

例如:

    SELECT * FROM schema1.users
    UNION ALL
    SELECT * FROM schema2.users
    UNION ALL 
    SELECT * FROM schema3.users
    ;

【讨论】:

谢谢。有没有办法在全球范围内定义这个?所以在没有联合的每个查询中,它都会调用所有三个模式?

以上是关于使用ibatis进行查询,我想查询一个字段有多个值得时候的结果,sql语句是这样的的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 BigQuery 旧版 sql 查询相同的重复字符串字段以获取多个值?

sql如何根据一个字段的多个值查询

Mongodb模糊查询返回有查询到内容的字段?

Ibatis.net 属性字段中使用 IN 查询条件

关于sql模糊查询(全字段)

lucene卷曲查询的多个术语