mysql - 数据库,合并多列中收集的数据

标签 mysql sql

我在数据呈现方面遇到问题(Iconics Genesis 64 系统的报告工具)。 对于报告,我需要允许用户选择应报告的设备 ID 的日期、日期和多重选择(这些是温度测量值等)

问题是,数据库收集器具有不寻常的结构,因此数据存储如下:

ID    DATE1    SAMLPLE1    DATE2    SAMPLE2    DATE3   SAMPLE3

有 36 个样本,直到它开始在新行中收集数据,我无权更改它。 所以基本上我需要以某种方式将所有 DATE 列和 SAMPLE 列连接在一起,以进行进一步分析。

我需要的是 1 行包含 36 个 DATE 和 SAMPLE 列,36 个行的 ID 位于第一列,DATE 和 SAMPLE 位于其旁边。

还没弄清楚如何做到这一点(我不太擅长数据库引擎)。有什么想法吗?

最佳答案

有几种方法可以解决这个问题。首先,如果您根本无法更改数据库,则可能必须在应用程序代码(PHP 或您正在使用的任何内容)中执行此操作。如果您经常需要它,我可能建议创建一个 View :http://dev.mysql.com/doc/refman/5.0/en/create-view.html

无论如何,您都可以使用它来聚合它们:

(SELECT DATE1 as DT, SAMPLE1 as SAMPLE FROM table) UNION (SELECT DATE2 as DT, SAMPLE2 as SAMPLE from table) UNION ... UNION (SELECT DATE36 as DT, SAMPLE36 as SAMPLE)

关于mysql - 数据库,合并多列中收集的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20641523/

相关文章:

mysql - 使用 MySQL Workbench 连接到 OpenShift MySQL

java - 在 MySQL 表中存储毫秒(使用 Java 存储/检索)

MYSQL 选择超过 1 天的记录

sql - 获取层次结构表中子项的根父项

php - 在 PHP 中准备 MySQLi 语句

mysql - 将字符串与二进制进行比较并返回结果

Java SQL 插入,其中不存在 2 个相同的值

过程中的 MYSQL 组连接

mysql - 如何更新 MySQL 中的级联?

mysql - SQL从多个表中选择数据