我想使用python在DynamoDB上查询一个表。这个查询的问题是,我想在同一个查询中使用AND和OR条件。当值为B或C时,我希望查询从一列中检索值。
我有下表:
domain validation_A validation_B validation_C
--------- ----------------- --------------- ---------------
drene.com pass pass pass
drene.com pass true pass
drene.com fail pass pass
在正则SQL表达式中,我将使用:
Select *
from
ValidationTable
where
domain = 'drene.com' and
validation_A = 'pass' and
(validation_B = 'pass' or validation_B = 'true')
我不知道如何在DynamoDB/Pythom 中做到这一点
我尝试了以下方法:
response = table.scan(
IndexName="Date-index",
FilterExpression=Key('domain').eq('drene.com') & Attr('validation_A').eq('pass') & (Attr('validation_B').eq('pass') || Attr('validation_B').eq('true'))
)
但不起作用
我需要查询将前2行带到我这里。
使用|
而不是||
response = table.scan(
IndexName="Date-index",
FilterExpression=Key('domain').eq('drene.com') & Attr('validation_A').eq('pass') & (Attr('validation_B').eq('pass') | Attr('validation_B').eq('true'))