您好我有一个表,其中包含一个值ID
和其他值nombre
。
###############
# ID # Nombre #
###############
# 4 # Juan #
###############
# 3 # Juan #
###############
# 2 # Juan #
###############
# 1 # Martin #
###############
# 0 # Juan #
###############
是否可以通过 MySql 查询来获取最近的名称(在本例中为 Juan)的出现?
也就是说,从表中输入的最新名称(在这种情况下Juan
)开始计算其出现次数,直到另一个值中断计数(在这种情况下Martin
)。
在示例表中,返回值应该是 3,因为在表中输入的姓氏是 Juan,并且在名字 Martin 出现之前出现了 3 次。
试试这个查询
要查看工作示例,请单击此处
假设这是您的桌子:
所以姓氏来自查询
您可以在查询中获取表的最大 ID 以及除姓氏之外的最大值:
然后返回
所以想要的结果是从两者之间的差异中获得的。
现在,当有人删除中间值时会发生什么?
结果应该是 2,但是根据我向您展示的查询,其余的 ID 仍然会显示 3。您必须尝试另一种解决方案。
例如,您可以选择ID大于姓氏以外的最大ID的所有记录(听起来已经很牵强了)
然后返回
所以这是一件要做的事
这样你就得到了