Mysql 需要获取最后一个id的记录

Mysql 需要获取最后一个id的记录,mysql,Mysql,我在这个结构中有一个表,但每次都需要得到每个qst_id的记录,就像这里一样,我需要得到qst_id=1的记录意味着需要得到ans_id=35,但我如何使用查询。我这样做是因为我必须更新每一次调查的电子邮件 ans_id qst_id opt 25 1 option1 26 2 option1 27 3 option2 28 4 option2 29

我在这个结构中有一个表,但每次都需要得到每个qst_id的记录,就像这里一样,我需要得到qst_id=1的记录意味着需要得到ans_id=35,但我如何使用查询。我这样做是因为我必须更新每一次调查的电子邮件

     ans_id qst_id  opt
        25      1   option1
        26      2   option1
        27      3   option2
        28      4   option2
        29      5   option2
        30      6   option2
        31      7   option2
        32      8   option2
        33      9   option2
        34      10  option2
        35      1   option1
        36      2   option1
        37      3   option1
        38      4   option1
        39      5   option1
        40      6   option1
        41      7   option1
        42      8   option1
        43      9   option1
        44      10  option1

假设
ansu id
的值将自动递增,然后使用
order by
limit

select qst_id from your_table order by ans_id desc limit 1;

在MySQL 5.x中,您可以使用表表达式,如下所示:

select t.*
from t
join (
  select qst_id, max(ans_id) as max_ans_id
  from t
  group by qst_id
) x on x.qst_id = t.qst_id and x.max_ans_id = t.ans_id
MySQL 8.x中,您可以使用
ROW_NUMBER()
窗口函数查找每个
qst_id
的最后一行,如下所示:

select ans_id, qst_id, opt
from (
  select 
    ans_id, qst_id, opt,
    row_number() over(partition by qst_id 
                      order by ans_id desc) as rn
  from t
) x
where rn = 1

请添加完整的样本输出也,它将帮助您,所以用户回答您很容易。