php - Mysql 查询选择多行数据

标签 php mysql select

我现在正在执行四个单独的查询来选择我需要的信息。

f.e.

SELECT value FROM data where sensor=123 AND value_id=a
SELECT value FROM data where sensor=123 AND value_id=b
SELECT value FROM data where sensor=123 AND value_id=c
SELECT value FROM data where sensor=123 AND value_id=d

现在我正在尝试一些代码。我不知道我的方式是否正确,但这样的事情有可能吗:

SELECT value180,value181,value182,value183
        FROM (
            SELECT
            MAX(CASE WHEN DATE(time) = subdate(CURDATE(), 1) THEN value ELSE 0 END) as value180,
            MAX(CASE WHEN DATE(time) = subdate(CURDATE(), 1) THEN value ELSE 0 END) as value181,
            MAX(CASE WHEN DATE(time) = subdate(CURDATE(), 1) THEN value ELSE 0 END) as value182,
            MAX(CASE WHEN DATE(time) = subdate(CURDATE(), 1) THEN value ELSE 0 END) as value183
            FROM data
            WHERE sensor_id = 1605850
            AND value_id IN ("1.8.0","1.8.1","1.8.2","1.8.3")
        ) a

最好有一个查询...谢谢您提前提供帮助!

注意:我必须使用每个传感器每个值每天的最大值。在上面的第一个示例中,为了简化而省略了这个 max 函数。

这是表格的样子: enter image description here

如您所见,每个 value_id 都有每小时获取的值

我需要什么: 我需要定义的 value_id 昨天的最高值

f.e. 1.8.0 = 3726.12,1.8.1 = 663.69,...

通过我的组合查询,我得到了错误的值,但我想要获取值的格式方式是正确的:

enter image description here

最佳答案

尝试

SELECT  value FROM data
WHERE sensor=123 AND value_id IN ('a', 'b', 'c' , 'd');

SELECT value FROM data
WHERE sensor=123 AND value_id IN (SELECT DISTINCT value_id FROM data);

关于php - Mysql 查询选择多行数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47097314/

相关文章:

mysql - 在 SQL 中更新记录但不覆盖....在开头添加文本

mysql - laravel [1049] 未知数据库

mysql - LEFT JOIN 仅第一行

MySQL-选择收集第二个选择结果的地方

mysql - 尽管 GROUP BY 子句仍获取单个列值

php - Codeigniter Ajax 删除一条记录并返回可用记录数

php - 如何从另一个常量变量创建静态类常量变量?

php - MySQL 需要来自连接的多行的多个值

php - 如何从数据库添加一列的浮点值

sql - 如何从 postgres 函数中选择特定的列?