设定数据库中有多张表,表的名称设置为hst_yyyymm(yyyymm为年月),从这几个表中我要查询一条数据,但我不知道这条数据在哪张表中,具体的表名称也不知道,请问可以通过一条sql语句实现查询吗?或者通过java代码来实现吗?
如果yyyymm的值知道,可以用union all把结果集联合起来查询
select * from hst_202001
union all select * from hst_202002
........
where ......
具体的表名称也不知道
那么你知道是某年某月开始
某月结束,那么可以用日期循环组成表名,在数据库查询表名是否存在
存在则组成查询语句执行查询,
sql就是把表都union all了,java就是你可以拼接表名的方式实现,把表名作为入参传进去。
这个问题说难也不难
1、这应该是一个表按照时间被拆分成了多个表
2、数据不多的情况下连表可以解决
3、数据太多的话连这么多表会出问题的,还是综合考虑吧。
可以看看这篇文章,讲了分库分表的
https://blog.csdn.net/qq_31616567/article/details/113470163
看你这个描述应该是使用了分库分表,可以了解一下具体使用了哪个中间件来进行分库分表,然后看一下语法。