Mysql 如何计算不同的行数
只有当('4,5,8,10,11,15')中的Mysql 如何计算不同的行数,mysql,Mysql,只有当('4,5,8,10,11,15')中的的每个id都有日期戳='2012-11-07'时,此代码才有效,但如何仅统计拥有它的id 例如,上面的代码返回NULL,因为在2012-11-07年只有15行,但我需要它不去注意其他行,而是返回所有的行,我不完全清楚你在问什么,但如果你只是想知道有多少行符合你的搜索条件,我会尝试撒谎: SELECT HOUR (`Timestamp`) AS HOUR, COUNT(*) AS Alarms FROM `alarms` WH
的每个id都有日期戳='2012-11-07'
时,此代码才有效,但如何仅统计拥有它的id
例如,上面的代码返回NULL
,因为在2012-11-07年只有15行,但我需要它不去注意其他行,而是返回所有的行,我不完全清楚你在问什么,但如果你只是想知道有多少行符合你的搜索条件,我会尝试撒谎:
SELECT
HOUR (`Timestamp`) AS HOUR,
COUNT(*) AS Alarms
FROM
`alarms`
WHERE
`Siteindex` IN ('4, 5, 8, 10, 11, 15')
AND `Datestamp` = '2012-11-07'
GROUP BY
HOUR (`Timestamp`);
您的where
子句很可能就是问题所在
SELECT COUNT(*)
FROM alarms
WHERE Siteindex IN ('4,5,8,10,11,15') AND Datestamp = '2012-11-07';
根据siteindex
的类型,您应该将其更改为
WHERE `Siteindex` IN ('4, 5, 8, 10, 11, 15')
或
试试这个
WHERE `Siteindex` IN ('4', '5', '8', '10', '11', '15')
这将只计算你拥有的ID。我想你需要更好地解释这个问题-我不明白你在问什么。@WillA我需要获取('4,5,8,10,11,15')中包含Siteindex且日期戳为'2012-11-07'的所有现有行。
,,但它仅在所有Siteindex都存在且当前日期为的情况下返回。您的表定义了什么?您是否有时间戳
和日期戳
?@OlafDietsche time和dateYes,但它返回NULL,因为只有Siteindex=15和'datestamp'=2012-11-07'的行
抱歉,语法错误。删除列名周围的单引号。我更新了我的答案。你希望得到什么结果?
WHERE `Siteindex` IN ('4', '5', '8', '10', '11', '15')
SELECT HOUR (`Timestamp`) AS HOUR,
COUNT(Siteindex) AS Al
FROM ( SELECT Siteindex FROM alarms WHERE `Siteindex` IN (4, 5, 8, 10, 11, 15))
`alarms`
WHERE
`Datestamp` = '2012-11-07'
GROUP BY
HOUR ;