gpt4 book ai didi

mysql - 如何在sql查询中使用动态限制

转载 作者:行者123 更新时间:2023-11-30 21:30:09 25 4
gpt4 key购买 nike

我有一个查询SELECT * FROM grades WHERE userid = 4123;

我想限制这个查询

我有一个查询SELECT * FROM grades WHERE userid = 4123 LIMIT(2);

这很好用,但如果我希望此限制是来自另一个查询的动态限制。

SELECT COUNT(id) FROM count_table WHERE course = 131;

这样做会给我一个语法错误

SELECT * FROM grades WHERE userid = 4123 LIMIT (SELECT COUNT(id) FROM count_table WHERE course = 131);

如果这根本不可能,那么是否有其他方法可以实现?

请帮忙!

最佳答案

您可以在 MySQL 8.x 中使用 ROW_NUMBER() 函数执行此操作。

假设您按某列对行进行排序(我猜是列 ID...根据需要更改它),您可以:

select
g.*
from (
select
*,
row_number() over(order by id) as rn -- change ordering as needed
from grades
) g
join (
SELECT COUNT(id) as cnt FROM count_table WHERE course = 131
) c on g.rn <= c.cnt

关于mysql - 如何在sql查询中使用动态限制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56702960/

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