首页 > 解决方案 > 如何使用另一个表中的 select count(id) 设置 LIMIT 的值 |MySQL

问题描述

我有一种情况,结果必须受到限制,这取决于计算另一个表中的 id。

假设我有这两张桌子counterdispanser

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

像这样的东西

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

标签: mysqlselectlimit

解决方案


您可以尝试使用动态 SQL。

设置一个变量以从表@num中获取金额。dispanser

准备好你的 SQL 语句CONCAT('select * from counter limit ', @num )

最终用于EXECUTE动态执行 SQL。

SET @sql = CONCAT('select * from counter order by counterID desc limit ', (SELECT count(dispID) from dispanser));

PREPARE stmt FROM @sql;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;

sqlfiddle


推荐阅读