我正在使用Amazon的SimpleDB Java客户端从SimpleDB读取数据。我遇到的问题是即使我在SelectRequest中以某种顺序指定了列,如下所示:
SelectRequest req = new SelectRequest("SELECT TIMESTAMP, TYPE, APP, http_status, USER_ID from mydata");
SElectResult res = _sdb.select(req);
..
它按以下列顺序返回数据:
APP, TIMSTAMP, TYPE, USER_ID, http_status,
它似乎按升序自动重新排序列。有没有办法可以像我在select子句中指定的那样强制执行命令?
答案 0 :(得分:0)
返回的列不是有序的列表,而是属性的无序集。您无法控制它们返回的顺序。即使在查询中的某些属性不存在于每个(或任何)返回的项目的情况下,SELECT也可以使用。在那些情况下,你无论如何都无法依赖订单。如果您已经构建了数据集以便始终存在属性,我意识到这是一个小小的安慰。
但是,由于您提前了解了所需的顺序,因此以正确的顺序从结果中提取数据应该非常容易。毕竟它只是XML,或者在Java客户端的情况下,是新解析的XML。
Select操作返回一组与select表达式匹配的ItemNames属性。