gpt4 book ai didi

MySQL 只获取具有最高查询 ID 的行

转载 作者:行者123 更新时间:2023-11-29 00:32:43 25 4
gpt4 key购买 nike

你好 Stackoverflow 社区,

这是我在这里的第一篇文章,所以我为我的糟糕英语道歉! :)

如果您不想阅读所有内容,问题会被标记为like this

标题有点误导,但我不知道如何更好地解释它,但详细的解释应该让你明白:

我有一个很大的日志表(此时大约有 500000 行),其中一个游戏服务器记录了游戏中发生的许多操作。我想以最有效的方式提取一些特定的日志行。

我无法更改游戏服务器的日志系统,如果可以的话我会更改为更多的日志表,以创建更紧凑的日志。 (因为对该表执行查询需要时间..)

现在我的问题是,我想获取特定类型的最后一个日志行并从特定玩家 ID 获取玩家的最后一个 Action ,但我不知道如何以有效的方式做到这一点。示例:

SELECT * FROM log WHERE logType = "PLAYER" AND playerID = [playerID] ORDER BY time DESC LIMIT 1

然后网站上的输出将是:您的最后一个操作是 [人类可读的操作和附加信息]。

MySQL 分析现在告诉我,对结果进行排序花费的时间最多。

现在我的问题是:是否可以只获取特定玩家 ID 和类型的最后一行?我想这可以用 ID 来完成,因为它有 auto_increment。那么是否有可能获得具有最高ID、特定类型和特定玩家ID的行?

表结构:ID(整数) |日志类型(varchar) |时间(日期时间) |玩家ID(整数) |位置X(整数) |位置Y(整数) | Action ID(整数) | Action (可变字符) |提示(varchar) | ip(可变字符) |项目编号(整数)

解释:

ID:记录 Action 的唯一ID

logType:记录 Action 的类型(例如:“PLAYER”或“ITEM”)

time: Action 发生的时间

playerID:玩家的id(或其他与该类型相关的id)

positionX:游戏中的X位置

positionY:游戏中的Y位置

actionID:与 Action 相关的 ID(例如:如果日志 Action 是“KILLED_BY_PLAYER”,则为杀死玩家的其他玩家的玩家 ID)

Action :记录的 Action (例如:KILLED_BY_PLAYER)

提示:一些有用的提示,比如玩家的名字

ip: 播放器的IP

itemNumber:Item的编号,如果涉及Item,则为NULL

感谢您的帮助。 :)

最佳答案

获取最高id:

select max(id) from table;

其他的你可以在 select 语句中放置一个 where 子句。

关于MySQL 只获取具有最高查询 ID 的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15789856/

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