使用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语句是这样的的主要内容,如果未能解决你的问题,请参考以下文章