我现在正在执行四个单独的查询来选择我需要的信息。
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 函数。
如您所见,每个 value_id 都有每小时获取的值。
我需要什么: 我需要定义的 value_id 昨天的最高值。
f.e. 1.8.0 = 3726.12,1.8.1 = 663.69,...
通过我的组合查询,我得到了错误的值,但我想要获取值的格式方式是正确的:
最佳答案
尝试
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/