mysql存储过程中in传的变量有多个

mysql存储过程中in传的变量有多个,第1张

于在mysql的存储过程中,实现类似where id in(1,2,3,...)的功能,有兴趣的朋友参考学习下。

sql语句

复制代码代码示例:

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-- 释放

mysql 3张表关联批量更新:

mysql更新语句很简单,更新一条数据的某个字段,一般这样写:

代码如下:

UPDATE mytable SET myfield = 'value' WHERE other_field = 'other_value'

如果更新同一字段为同一个值,mysql也很简单,修改下where即可:

代码如下:

UPDATE mytable SET myfield = 'value' WHERE other_field in ('other_values')

这里注意 ‘other_values' 是一个逗号(,)分隔的字符串,如:1,2,3


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/7424464.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-05
下一篇 2023-04-05

发表评论

登录后才能评论

评论列表(0条)

保存