mysql多个相同的表_mysql:查询多个相同的动态表

我有一个500多个表的数据库,每个表的结构都相同,其中包含来自传感器的历史数据。我正在尝试提出一个查询,它将定位传感器n超过x的所有实例。问题是表是动态的,查询必须能够动态获取表列表。

我可以查询information_schema.tables以获取表列表,如下所示:

SELECT table_name

FROM information_schema.tables

WHERE table_schema = 'database_name';

我可以用它在程序中创建一个循环,然后反复查询数据库,但是似乎有一种方法可以让MySQL进行多表搜索。

我还不能创建一个有效的存储过程,但我能找到的示例通常是搜索任何列中的字符串。我想在所有表中存在的特定列中专门查找数据。我承认我不知道如何正确地使用存储过程,也不知道它们是否是解决这个问题的合适方法。

循环内的一个示例查询是:

SELECT device_name, sensor_value

FROM device_table

WHERE sensor_value > 10;

尝试下列操作无效:

SELECT device_name, sensor_value

FROM

(

SELECT table_name FROM information_schema.tables WHERE table_schema = 'database_name'

)

WHERE sensor_value > 10;

它会导致错误:“每个派生表都必须有自己的别名。”

目标是在日志(表)的任何位置列出所有具有给定传感器值的设备。

最后,我应该在获得表列表后在程序中循环,还是有一个更有效的查询结构?

你可能感兴趣的:(mysql多个相同的表)