mysql - 如何使用另一个表中的 select count(id) 设置 LIMIT 的值|MySQL

标签 mysql select limit

我有一个场景,结果必须受到限制,这取决于计算另一个表中的 ID。

假设我有这两个表 counterdispanser,

我想选择counter中的最后一条记录,并通过计算dispanser表中的记录数来限制选择。

像这样

select * from counter limit (select count(dispID) from dispanser) 

最佳答案

如果不使用准备好的语句或存储过程,就无法做到这一点。来自manual :

LIMIT takes one or two numeric arguments, which must both be nonnegative integer constants

在存储过程中,您可以这样做。 COUNT(dispID) 存储到 cnt 中,然后该变量用作 LIMIT 的参数。这是上述规则的异常(exception)情况。

DELIMITER //
CREATE PROCEDURE select_counter()
BEGIN
  DECLARE cnt INT;
  SELECT COUNT(dispID) INTO cnt FROM dispanser;
  SELECT * FROM counter LIMIT cnt;
END //
DELIMITER ;

DBFiddle

关于mysql - 如何使用另一个表中的 select count(id) 设置 LIMIT 的值|MySQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53234654/

相关文章:

php - 有什么方法可以用 PHP/MySQL 动态创建流程图或 UML?

php - 在同一个 mysql 主机上,如何将 WordPress 帖子从一个数据库传输到另一个数据库?

jquery - 使用 jQuery 从 <a> 元素中选择文本?

windows - 如何限制批处理变量的长度

mysql - 如何使用 Google App 脚本将数据插入外部数据库 : MySQL without using Google SpreadSheet

mysql - Mysql 中的自动索引

mysql - SELECT UNION : MySQL Select month, 上个月 - 1,上个月 - 3

r - 根据第一次出现的情况选择行

mysql - 为什么 MYSQL 较高的 LIMIT 偏移量会减慢查询速度?

java - 有条件地向 Java 8 流添加操作