mysql limit动态赋值 / sql拼接,预处理语句解析

  1. 预处理语句使用函数解析
  2. 预处理语句,limit动态赋值示例
  • 预处理语句使用函数解析
          prepare:
                PREPARE name FROM preparable_stmt(“预定义sql”);预定义一个语句,并将它赋给 name ,name 是不区分大小写的。
                preparable_stmt 语句中的 ? 是sql参数占位符。
                如果新的 PREPARE 语句使用了一个已存在的 name ,原有的将被立即释放! 新的会继续执行。
                 PREPARE name 的作用域是当前客户端连接会话可见。
           execute:
                 execute stmt_name执行stmt_name语句
          using:
                mysql连接函数在联表sql中表示量表都存在的,SELECT A JOIN B USRING(colunm)
                在预处理语句中,execute stmt_name using @par 表示连接执行语句变量,stmt_name中的参数占位符数量,需要与using连接的变量数量一致,位置一一对应即可正确执行。
          deallocate:
                deallocate PREPARE 资源释放

  • 预处理语句,limit动态赋值示例
          复杂sql需多条sql拼接组合,还可以使用concat字符拼接函数

-- 定义预处理语句
prepare s1 from 'SELECT * FROM ms_member_info LIMIT ?,?';
-- 设置分页变量参数
SET @pageSize=100;
SET @page=1;
-- 执行预处理语句,占位符赋值
execute s1 using @page,@pageSize;
-- 资源释放
deallocate prepare s1;


-- 使用concat拼接函数,拼接sql的预处理语句
SET @stmt = concat('SELECT * FROM ms_member_info');
SET @stmt1= (concat(@stmt,' LIMIT ?,?'));
-- 查看拼接出来的sql
SELECT @stmt1;
-- 定义预处理语句
prepare s1 from @stmt1;
-- 设置分页变量参数
SET @pageSize=100;
SET @page=1;
-- 执行预处理语句
execute s1 using @page,@pageSize;
-- 释放资源
deallocate prepare s1;

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值