我有 2 张桌子。其中一个持有限制号码。
我正在尝试运行类似的 sql
SELECT * FROM table WHERE x='1' LIMIT (another query)
在 MySQL 中,您不能使用常规查询来做到这一点。LIMIT 子句不允许变量。LIMIT 子句只接受常数。
您必须使用存储过程而不是常规查询。
尝试在 SP 代码中使用类似这样的内容:
DECLARE offset bigint
SELECT your_field INTO offset FROM your_table where your_conditions
SELECT * FROM other_table LIMIT offset;
使用准备好的语句:
PREPARE stmt FROM "SELECT * FROM table WHERE x='1' LIMIT ?";
SET @limit = (another query);
EXECUTE stmt USING @limit;
\您执行我向几个人建议的操作是从 select 语句生成 SQL,然后执行该语句。这是我的解决方案:
SELECT "select * from other_table LIMIT ", your_field
FROM your_table where your_conditions
然后执行这个新的 SQL。当然,这在 UNIX/Linux 和脚本语言中效果最好。
Select TOP 子句限制行数。你可以在里面放一个表达式