-1

我有 2 张桌子。其中一个持有限制号码。

我正在尝试运行类似的 sql

SELECT * FROM table WHERE x='1' LIMIT (another query)
4

4 回答 4

0

在 MySQL 中,您不能使用常规查询来做到这一点。LIMIT 子句不允许变量。LIMIT 子句只接受常数。

您必须使用存储过程而不是常规查询。

尝试在 SP 代码中使用类似这样的内容:

DECLARE offset bigint
SELECT your_field INTO offset FROM your_table where your_conditions
SELECT * FROM other_table LIMIT offset;
于 2012-06-04T21:59:03.373 回答
0

使用准备好的语句:

PREPARE stmt FROM "SELECT * FROM table WHERE x='1' LIMIT ?";
SET @limit = (another query);
EXECUTE stmt USING @limit;
于 2012-06-04T22:56:01.907 回答
0

\您执行我向几个人建议的操作是从 select 语句生成 SQL,然后执行该语句。这是我的解决方案:

SELECT "select * from other_table LIMIT ", your_field 
FROM your_table where your_conditions

然后执行这个新的 SQL。当然,这在 UNIX/Linux 和脚本语言中效果最好。

于 2012-06-04T22:14:31.770 回答
0

Select TOP 子句限制行数。你可以在里面放一个表达式

http://msdn.microsoft.com/en-us/library/ms189463.aspx

于 2012-06-04T21:38:52.870 回答