我对MySQL的了解是基本的。我想构建一个查询,以便在达到给定金额值的总和时返回所有行
表格
id name expirydate amount
1 name1 11-08-16 0.20
2 name2 10-08-16 1.50
3 name3 08-08-16 1.00
我需要来自id 3的结果,2到期日的订单。
答案 0 :(得分:0)
您可以使用MySQL user defined variables
SET @n := 1.2;
SELECT
t.id,
t.name,
t.expirydate,
t.amount
FROM
(
SELECT
*,
@bal := @bal + amount AS runningAmount,
IF(@bal >= @n, @doneHere := @doneHere + 1 , @doneHere) AS whereToStop
FROM table_amount
CROSS JOIN (SELECT @bal := 0.0 , @doneHere := 0) var
ORDER BY expirydate
) AS t
WHERE t.whereToStop <= 1
查看 WORKING DEMO
答案 1 :(得分:0)
如果您使用的是PHP,则可以使用以下循环从查询中获取所有结果。查询将获得结果并通过while循环我们可以显示所有记录。
<?php
$query = mysqli_query($db, "SELECT * FROM table WHERE amount >= 1.2 ORDER BY expirydate");
while($array = mysqli_fetch_array($query)){
echo $row['name'].' '.$row['amount'].' '.$row['expirydate'].'<br>';
}
?>