这里简单的记述一下.net core ef mysql in 参数化执行sql时踩的坑,在使用IN函数的时候发现无论怎样写都无法执行成功(1.程序执行过程报错、2.程序执行成功但是数据库状态没有更改)后来就选择了
FIND_IN_SET函数。
sql语句
update businessnotice set baseisdelete = @baseisdelete where FIND_IN_SET (id,@ids);
@baseisdelete参数
new MySqlParameter("@baseisdelete", 1)
@ids
new MySqlParameter("@ids", "e5051a85b1744af0a98ffd30b0d34cbb,8e6314db7fad402a81ed535bd6fd1c01,894989c6502b43b997d2fbfa4dd73050")
完整的sql语句为:
update businessnotice set baseisdelete = 1 where FIND_IN_SET (id,'e5051a85b1744af0a98ffd30b0d34cbb,8e6314db7fad402a81ed535bd6fd1c01,894989c6502b43b997d2fbfa4dd73050');
注意坑:
ids中的参数不要带上单引号(“'”)否则就会出现程序执行成功,但是test表的baseisdelete 字段值没有改变的情况。