gpt4 book ai didi

php - 如何在MySQL存储过程中使用IN运算符?

转载 作者:行者123 更新时间:2023-11-29 07:36:55 27 4
gpt4 key购买 nike

我正在尝试更新 MySQL 表中的多条记录,但它不起作用,只有第一条记录正在更新。我正在使用 MySQL 'IN' 更新多条记录。

我的代码:

CALL  my_proc_name('','','','','','','','','','','','','','',$modifiedby,$modifiedon,'$status','$type','$ids','$start','$limit','$remarks');

我的 SP 是:

UPDATE my_table_name SET modifiedby=modifiedby1,modifiedon=modifiedon1,status=status1 WHERE leaveid IN (id);

参数是:

$ids = 2016,2017,2019,2020
$status = 'Approved'

我的问题是只有第一条记录得到更新,在这种情况下,根据我上面的参数,只有 id 2016 被更新。我的错误是什么?我的问题是我可以直接为我的表列 'id' 提供开始('(')和结束(')')大括号,如存储过程的“IN(id)”?

最佳答案

最后,我找到了解决办法。 “FIND_IN_SET”解决了我的问题,但我更新的行 ID 必须在我的存储过程 (SP) 中声明为“varchar”,即我的列“id”应该是“varchar” SP。

下面是我修改后的SP:

UPDATE my_table_name SET modifiedby=modifiedby1,modifiedon=modifiedon1,status=status1 WHERE  FIND_IN_SET(leaveid,id); 

关于php - 如何在MySQL存储过程中使用IN运算符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48381429/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com