使用“where”条件从 Amazon DynamoDB 获取项目

Posted

技术标签:

【中文标题】使用“where”条件从 Amazon DynamoDB 获取项目【英文标题】:Getting items from Amazon DynamoDB using 'where' condition 【发布时间】:2015-10-17 09:50:20 【问题描述】:

如何使用 'where' 条件从 dynamoDB 获取项目?

例如,

select 'names' from Employee where dept="billing"

(我想从 Employee 表中获取部门为“计费”的所有名称)

如何在 Java 代码中为此编写查询?非常感谢用示例代码解释。谢谢。

【问题讨论】:

【参考方案1】:

选择查询可能是这样的:

SELECT `names`  FROM `Employee` WHERE `dept` LIKE 'billing'

一些java的东西:

try 
        String url = "jdbc:msql://***.***.***.***:****/Demo";
        Connection conn = DriverManager.getConnection(url, "", "");
        Statement stmt = conn.createStatement();
        ResultSet rs;

        rs = stmt.executeQuery("SELECT `names`  FROM `Employee` WHERE `dept` LIKE 'billing'");
        while (rs.next()) 
            String name = rs.getString("names");
            System.out.println(name);
        
        conn.close();
     catch (Exception e) 
        System.err.println("Got an exception! ");
        System.err.println(e.getMessage());
    

【讨论】:

抱歉,我要查询 Amazon DynamoDB 数据库。 对不起我的错.. mybe这个链接可以帮助你更多:docs.aws.amazon.com/amazondynamodb/latest/developerguide/… 很高兴..如果我帮助了你,请接受我的回答并玩得开心;)【参考方案2】:

您可以使用主键(散列键)或复合键(散列+范围键)搜索 Dynamo DB

如果您尝试搜索某个项目的任何属性,则必须对数据库进行完整的Scan,这是非常低效的。

因此,请尝试以一种您不要最终使用Scans 的方式设计您的数据库,并鼓励根据 Dynamo 设计的索引进行搜索。

对于原始问题:您可以使用ProjectionExpression 进行搜索。

供进一步参考 - http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/QueryAndScan.html#QueryAndScan.Scan

【讨论】:

以上是关于使用“where”条件从 Amazon DynamoDB 获取项目的主要内容,如果未能解决你的问题,请参考以下文章

如何为 Amazon redshift 数据库编写查询,使相关查询的 where 子句具有两个条件?

如何也使用 where 条件从表中获取列名

MS.Access - 在 DoCmd.OpenReport [where 条件] 中使用 2 个过滤条件从表单打印报表

mysql语句where条件中的是啥意思

使用带有 WHERE 条件的单个查询 (SQL Express 2005) 从多个表中删除行

如何使用 WHERE 条件从 Excel 工作表中插入字段以访问数据库