mysql - 如何使用另一个表中的 select count(id) 设置 LIMIT 的值 |MySQL
问题描述
我有一种情况,结果必须受到限制,这取决于计算另一个表中的 id。
假设我有这两张桌子counter
,dispanser
我想要表中select
的最后一条记录,counter
并通过计算表中的记录数来限制选择dispanser
。
像这样的东西
select * from counter limit (select count(dispID) from dispanser)
解决方案
您可以尝试使用动态 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;
推荐阅读
- android - apk 图标未在其他设备上显示
- mysql - SQL 查询通过使用不同的特征添加一列中的值来插入新列
- matlab - 稀疏矩阵乘法复杂度及实现
- docker - 私有注册表推送失败:服务器向 HTTPS 客户端提供 HTTP 响应
- r - 将变量存储在具有连接列的 for 循环中
- linux - 发现文档中的 IdentityServer4 HTTP url
- react-native - 从 expo 访问 android 文件,如( manifest.xml )
- r - 替换两个数据框之间的值
- codeigniter - 如何在codeigniter中获取从数据库中检索到的数组的值?
- html - 你应该以什么顺序为同一个 HTML 元素声明“id”和“class”,为什么?