如何在Select name , college_id,phone_number from users where college_id =2 limit 100
中转换此SQL查询dyanmodb
。
我试过下面的代码
$iterator = $dynamo->query(array(
'TableName' => 'users',
'IndexName' => 'college_id-phone_number-index',
'ScanIndexForward' => false,
'KeyConditions' => array(
'college_id' => array(
'AttributeValueList' => array(
array('S' => (string)$collegeId )
),
'ComparisonOperator' => 'EQ'
),
'phone_number' => array(
'AttributeValueList' => array(
array('S' => (string)$phoneNumber)
),
'ComparisonOperator' => 'EQ'
)
),
**'Limit' => 100,**
)
);
我发现Limit = 100
限制要处理的项目总数,而不是要返回的匹配项目总数。
请帮帮我。
答案 0 :(得分:0)
Amazon DynamoDB中没有等效的SQL <?php
$conn = new PDO('mysql:host=localhost;dbname=ratebox', 'root', ''); //db connection
$date1 = $_POST['date1'];
$date2 = $_POST['date2'];
$d1 = new DateTime("$date1");
$d2 = new DateTime("$date1");
$no_of_days = $d1->diff($d2)->days; //calculating no of days
for ($x = 0; $x < $nO_of_days; $x = $x + 1) {
$rate = $_POST['txt' + counter];
$conn->query("insert into tb_rate(rates) values (NOW(),'$rate')") or die(mysql_error());
}
?>
命令。您应该继续遍历分页结果集,直到达到所需的记录数。
<强>更新强>
糟糕! 是限制参数。来自QUERY
documentation:
限制:要返回的最大项目数(不一定是匹配项的数量)。如果DynamoDB在查询表时处理达到限制的项目数,它将停止查询并返回到该点的匹配值,并在后续操作中应用 LastEvaluatedKey 以继续查询。此外,如果在DynamoDB达到此限制之前结果集大小超过1MB,它将停止查询并返回匹配值,并在后续操作中应用 LastEvaluatedKey 以继续查询。
因此,请继续分析1MB结果集,直到达到限制为止。