我在一个自加入的表中构建一个摘要,以便计算与某些值对应的行(在 TikiWiki CMS、跟踪器应用程序中)。但是我有一个情况,有两列可以具有相同的值,我需要 SQL 以特定顺序获取第一个非 NULL 值。
tiki_tracker_item_fields
这是我工作的表的示例:
itemId | fieldId | value
==========================
41 | 236 | Paris
41 | 213 | Paris
14 | 236 |
14 | 213 | Paris
25 | 236 | Paris
25 | 213 |
在查询中,我想计算字段 ID 236 或字段 ID 213 中所有以“Paris”为值的行。这里的结果应该是:3。
有我的要求:
SELECT COUNT(*) AS sp_actions
FROM
`tiki_tracker_item_fields` AS actions
WHERE
COALESCE(
actions.fieldId = 236,
actions.fieldId = 213
)
AND actions.value = 'Paris'
因此,当我为字段 236 设置“巴黎”时,此方法有效,但当我为字段 213 设置巴黎时,此方法无效。
而且我什至不确定我是否可以以这种方式使用 COALESCE,我发现的所有示例都将 COALESCE 放在 SELECT 语句中。
然后是性能问题...