我有一个数据库,它在单列fieldValue和fieldID中存储具有以下结构的所有字段数据。 我想知道这种类型的结构如何在条件下有2个过滤器?
例如我如何查询所有等于High的fieldID2和所有不同的fieldID11。
数据库是mysql。
输出如下所示,输出将像数据透视表一样。请注意我写查询没有任何问题,我想知道如何为两列提供多个条件。
$this->container
https://docs.mongodb.com/manual/reference/operator/update/set/
答案 0 :(得分:1)
我不确定你究竟在问什么。无论如何,通常通过聚合来查询键/值表。因此,如果每个InternalNo你想显示FieldIDs 1,2,3和4的值,只要它们的FieldID 2的值是' High'并且FieldID 11的值是' Discrepancy'你要这样做:
select
internalno,
any_value(case when fieldid = 1 then fieldvalue end) as fieldvalue1,
any_value(case when fieldid = 2 then fieldvalue end) as fieldvalue2,
any_value(case when fieldid = 3 then fieldvalue end) as fieldvalue3,
any_value(case when fieldid = 4 then fieldvalue end) as fieldvalue4
from keyvalues
group by internalno
having any_value(case when fieldid = 2 then fieldvalue end) = 'High'
and any_value(case when fieldid = 11 then fieldvalue end) = 'Discrepancy';
为了加快速度,您可以在所需的FieldID上应用WHERE
子句;
where fieldid in (1,2,3,4,11)
对于像FieldNo 89796的FieldID 10这样的一个属性的多个值,您必须决定要获取哪些值,而ANY_VALUE
可能不足以满足要求。