我正在尝试更新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)"到存储过程?
答案 0 :(得分:1)
最后,我找到了解决方案。的" FIND_IN_SET"已经解决了我的问题,但我更新的行ID必须声明为" varchar"在我的存储过程(SP)中,这是我的专栏' id'应该是" varchar"在SP。
以下是我修改过的SP:
UPDATE my_table_name SET modifiedby=modifiedby1,modifiedon=modifiedon1,status=status1 WHERE FIND_IN_SET(leaveid,id);