gpt4 book ai didi

mysql - 在不使用限制的情况下为用户选择最近的记录

转载 作者:太空宇宙 更新时间:2023-11-03 10:56:32 24 4
gpt4 key购买 nike

在这种情况下,有没有一种安全的方法来获取 ID 和用户的最新记录,而无需像我在下面做的那样使用限制?

表格

"id"    "head"  "type"  "updated"   "userId"    "addedDate"
"1" "2" "0" "1" "1" "2013-11-24 11:33:04"
"1" "2" "1" "1" "1" "2013-11-24 11:56:35"
"2" "2" "0" "1" "1" "2013-11-24 11:55:40"
"2" "2" "1" "0" "1" "2013-11-24 11:56:28"

当前sql

select id, addedDate from test 
where id = 1 and userId = 1 order by addedDate desc limit 1;

正在尝试实现(针对上面的sql不使用limit)

"id"    "head"  "type"  "updated"   "userId"    "addedDate"
"1" "2" "1" "1" "1" "2013-11-24 11:56:35"

最佳答案

虽然可能有更有效的方法,但这样的事情会起作用:

SELECT id, head, type, updated, userId, addedDate 
FROM test
WHERE id = 1
AND userId = 1
AND addedDate = (SELECT max(addedDate) FROM test WHERE id = 1 AND userId = 1)

我不确定在 MySQL 中对 DATE 类型进行范围查询的效率如何。您可以对架构进行更改以提供相同的输出,但在您看到某种形式的瓶颈之前我不会担心它(并且在您达到数百万行之前您不会担心)。

值得注意 - 我的解决方案不能保证您只会得到一行作为输出。如果用户同时添加了两个条目,您将在输出中收到两行。一般来说,如果您不能将查询限制在 UNIQUE 列并且您不能使用 LIMIT 1,您将不得不依赖应用程序逻辑(“我们只每天插入一次”) 以限制结果。

关于mysql - 在不使用限制的情况下为用户选择最近的记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20171861/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com