mysql sql 中 limit 接收变量方法

PREPARE s1 FROM 'SELECT * FROM ysxx LIMIT ?,?';
set @_limit=1;
set @_limit1=(select count(1) from ysxx);
EXECUTE s1 USING @_limit,@_limit1;

 

MySQLLIMIT后面只能加常数,不能直接加变量。如果在存储过程使用LIMIT并且想要使用变量,可以使用动态SQL来执行。首先声明一个变量,然后使用CONCAT函数将LIMIT语句的常数替换为变量。接着将动态SQL存储到一个变量,使用PREPARE语句准备执行动态SQL,最后使用EXECUTE语句执行动态SQL。例如,可以使用以下代码来实现这个功能: ``` DECLARE var_num1 INT; DECLARE var_sql VARCHAR(1024); SET var_num1 = 10; SET var_sql = CONCAT("SELECT * FROM test1 LIMIT ", var_num1, " ;"); SET @exec_sql = var_sql; PREPARE sql1 FROM @exec_sql; EXECUTE sql1; ``` 这样就可以在存储过程使用变量来设置LIMIT的值了。请注意,这个方法只适用于MySQL 5.5以下的版本。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [MySQL limit后面加变量](https://blog.csdn.net/weixin_40649680/article/details/114069862)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 50%"] - *3* [详解mysqllimit经典用法及优化实例](https://download.csdn.net/download/weixin_38738977/12833523)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值