MySQL 存储过程传参数实现where id in(1,2,3,...)示例

 更新时间:2013年10月30日 16:46:25   作者:  
一个MySQL 存储过程传参数的问题想实现例如筛选条件为:where id in(1,2,3,...),下面有个不错的示例,感兴趣的朋友可以参考下
正常写法:
复制代码 代码如下:

select * from table_name t where t.field1 in (1,2,3,4,...);

当在写存储过程in里面的列表用个传入参数代入的时候,就需要用到如下方式:

主要用到find_in_set函数
复制代码 代码如下:

select * from table_name t where find_in_set(t.field1,'1,2,3,4');

当然还可以比较笨实的方法,就是组装字符串,然后执行:
复制代码 代码如下:

DROP PROCEDURE IF EXISTS photography.Proc_Test;
CREATE PROCEDURE photography.`Proc_Test`(param1 varchar(1000))
BEGIN
set @id = param1;
set @sel = 'select * from access_record t where t.ID in (';
set @sel_2 = ')';
set @sentence = concat(@sel,@id,@sel_2); -- 连接字符串生成要执行的SQL语句
prepare stmt from @sentence; -- 预编释一下。 “stmt”预编释变量的名称,
execute stmt; -- 执行SQL语句
deallocate prepare stmt; -- 释放资源
END;

相关文章

  • mysql中使用sql命令将时间戳解析成datetime类型存入

    mysql中使用sql命令将时间戳解析成datetime类型存入

    这篇文章主要介绍了mysql中使用sql命令将时间戳解析成datetime类型存入,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-11-11
  • MySQL中关于临时表的一些基本使用方法

    MySQL中关于临时表的一些基本使用方法

    这篇文章主要介绍了MySQL中关于临时表的一些基本使用方法,是MySQL入门学习中的基础知识,需要的朋友可以参考下
    2015-05-05
  • 详解MySQL 用户权限管理

    详解MySQL 用户权限管理

    这篇文章主要介绍了MySQL 用户权限管理的相关资料,帮助大家更好的理解和学习使用MySQL,感兴趣的朋友可以了解下
    2021-04-04
  • mysql 5.6.37(zip)下载安装配置图文教程

    mysql 5.6.37(zip)下载安装配置图文教程

    这篇文章主要为大家详细介绍了mysql 5.6.37(zip)下载安装配置图文教程,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-08-08
  • mysql常用命令行操作语句

    mysql常用命令行操作语句

    MySQL很早以前只能采用DOS式界面,后来虽然硬件支持图形界面(平常的软件操作界面),但是命令行界面(就是DOS界面)以它 简单,高效,方便 的特色而被保留下来。这就是用DOS界面的原因。
    2016-05-05
  • 详解mysql解压缩版安装步骤

    详解mysql解压缩版安装步骤

    这篇文章主要介绍了mysql解压缩版安装步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-04-04
  • mysql条件查询and or使用方法及优先级实例分析

    mysql条件查询and or使用方法及优先级实例分析

    这篇文章主要介绍了mysql条件查询and or使用方法及优先级,结合实例形式分析了mysql条件查询and or基本功能、用法及优先级相关操作技巧,需要的朋友可以参考下
    2020-04-04
  • MySQL中日期型单行函数代码详解

    MySQL中日期型单行函数代码详解

    这篇文章给大家介绍MySQL中日期型单行函数的相关知识,包括返回当前日期时精确到日、秒的参考代码,代码简单易懂,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧
    2021-06-06
  • 一文彻底搞懂MySQL TimeStamp时区问题

    一文彻底搞懂MySQL TimeStamp时区问题

    MySQL的timestamp类型默认使用的是服务器的时区来存储时间值,这意味着如果服务器的时区发生了变化,那么存储的timestamp值也会发生变化,下面这篇文章主要给大家介绍了关于如何通过一文彻底搞懂MySQL TimeStamp时区问题的相关资料,需要的朋友可以参考下
    2024-01-01
  • MySQL UPDATE 语句的非标准实现代码

    MySQL UPDATE 语句的非标准实现代码

    这篇文章主要介绍了MySQL UPDATE 语句的非标准实现代码,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-04-04

最新评论