Mysql 如何显示最新记录
我只想显示usersId中的最新记录 如何创建一个查询,从usersId中获得最新的ordersId 该表如下所示:Mysql 如何显示最新记录,mysql,sql,Mysql,Sql,我只想显示usersId中的最新记录 如何创建一个查询,从usersId中获得最新的ordersId 该表如下所示: 这是我使用的查询,但它显示了所有ordersId: SELECT * FROM `orders` WHERE usersId=? 要获取最新的一张唱片,请 按OrdersID按降序设置顺序,然后 使用“限制0,1”仅获取1条记录 所以,请换一个 SELECT * FROM `orders` WHERE usersId=? 到 在将$uid设置为会话中的用户id之前,先绑定$
这是我使用的查询,但它显示了所有ordersId:
SELECT * FROM `orders` WHERE usersId=?
要获取最新的一张唱片,请
SELECT * FROM `orders` WHERE usersId=?
到
在将$uid设置为会话中的用户id之前,先绑定$uid,然后再绑定
$uid=$_SESSION['userid'];
$stmt->bind_param("s",$uid);
您可以按如下方式使用
LIMIT
子句:
SELECT * FROM `orders` WHERE usersId=?
order by orderdate desc limit 1;
select * from
(SELECT t.*,
row_number() over (partition by usersId order by orderdate desc) as rn
FROM `orders` t WHERE usersId=?) t
where rn = 1
或者您可以使用分析函数行数
,如下所示:
SELECT * FROM `orders` WHERE usersId=?
order by orderdate desc limit 1;
select * from
(SELECT t.*,
row_number() over (partition by usersId order by orderdate desc) as rn
FROM `orders` t WHERE usersId=?) t
where rn = 1
row\u number
解决方案在您需要多个usersid的最新数据时非常有用,那么这两者之间有什么区别呢?如果您希望多个用户的最新数据usersid在(?,,?)
中,那么分析函数可以为多个usersid
提供最新数据,为什么会有任何区别?它通过引用绑定。如何定义“最新”行?请共享表结构、示例输入数据和预期输出。如果您添加了解决问题的尝试,那就更好了question@NicoHaase“最新ordersId”@Dharman这是否仅指每个usersId的最大ordersId值,或者这是否也可以以任何方式链接到orderDate列?假设ID是严格按升序分配的,安全吗?