【发布时间】:2018-12-23 17:01:14
【问题描述】:
我想做一个查询,从另一个表中插入数据,动态限制在运行时生成,我该怎么做
这是我在临时表中插入数据以进行会话的过程的一部分,因此我可以处理其他查询,我已经通过重复语句完成了该操作,但这需要更长的时间,然后我想要这样的东西,但 MySQL 确实不允许有限制的变量。
我在这里使用 int 进行演示。
**SET @counter = 10; #FOUND_ROWS();
SET @bill_id = 1; #last_insert_id();
INSERT INTO billingids (bill_id) (
SELECT id from cfx_billing WHERE id >= @bill_id LIMIT @counter
);**
但它不起作用然后我尝试了准备语句
**SET @counter = 10; #FOUND_ROWS();
SET @bill_id = 1; #last_insert_id();
PREPARE STMT FROM "SELECT id from cfx_billing WHERE id >= @bill_id LIMIT ?";
INSERT INTO billingids (bill_id) (
EXECUTE STMT USING @counter
);
DEALLOCATE PREPARE stmt;**
对于 1 条语句,我收到此错误
SQL 错误 (1064):您的 SQL 语法有错误;查看与您的 MariaDB 服务器版本相对应的手册,了解在 '@counter 附近使用的正确语法 )' 在第 1 行。
对于2语句
SQL 错误 (1064):您的 SQL 语法有错误;检查与您的 MariaDB 服务器版本相对应的手册,以了解在 'EXECUTE STMT USING @counter 附近使用的正确语法 )' 在第 2 行
【问题讨论】:
标签: mysql