【发布时间】:2019-04-04 14:41:21
【问题描述】:
下面是我的 SQL 表。我正在尝试获取time 的最大值,其中to_address 是dfhuih。
我试过了:
SELECT MAX(time) as max_time FROM transactions WHERE to_address='dfhuih'
但是,无论to_address 是什么,该查询的结果都给出了表中的最大time 值——使用PHP mysqli 时。
在指定to_address 的time 列中选择最大值的正确方法是什么?
transactions
---------------------------------------
| to_address | time | amount |
----------------------------------------
| dfhuih | 1536294884 | 0.320 |
| dfhuih | 1536343222 | 0.564 |
| adslsd | 1546294884 | 0.320 |
| vshjfof | 1536294884 | 0.320 |
----------------------------------------
我的应用程序中的完整代码是
$stmt1 = $db_connection->prepare("SELECT MAX(time) as max_time FROM transactions WHERE to_address=? AND from_address=? AND is_affiliate_payment=0");
$stmt1->bind_param('is', $user_id, $faucet_key);
$stmt1->execute();
$result1 =$stmt1->get_result();
while($row = $result1->fetch_assoc())
{
echo $row['max_time']
}
【问题讨论】:
-
我认为您的想法是正确的,但是您的查询中缺少一些内容,应该是:
SELECT MAX(time) as max_time FROM transactions WHERE to_address = 'dfhuih',注意添加了FROM transactions。 -
这在 phpmyadmin 中有效,但在使用 PDO 时无效 - 当使用 PDO 时,无论 to_address 如何,它都会给我最大值
-
我认为这是“不可能的”,你一定是做错了什么。 PDO 不会更改您的查询或结果。
-
在 PDO 中,语句将
bindParam()作为方法,而不是bind_param()。怎么回事? -
我发布了一个答案可能会有所帮助,但为了更好的答案,我建议阅读 Why should I provide an MCVE for what seems to me to be a very simple SQL query? 以提供示例数据和预期结果。然后我们都可以停止做受过教育的人
标签: mysql