这里@userIds 如果 写成101,202,301翻译后的sql的where部分会是:
where userId in('101,202,301');
而不是期待的:
where userId in(101,202,301);前者前后多了引号。
 
在我使用ef.core连接mysql查询时,我这样写,就出现查出来的数据比sql脚本查出来的数据要少几条的情况。
所以这样写,可能可以查出来数据,但数据可能不会完整,而且还会是错误的数据。所以以后不要这样写了。
 
我想起,我们在拼接参数化时,可以这样写,比如 userCode=@search,而不是这样写:
userCode='@search';这种在参数化上加了引号的反而还要出错。
 
在前面最开始,即使我们以为他是数字, 但101,202...这样拼接就是字符串了,
指定的paramter或者默认就是为varchar等字符类型就会在参数前后自动加引号的。根据数据值值推断的默认sqlType类型。
省事的解决办法是,直接不在in后面使用用参数化,直接把值拼接到sql中去,比如 where userId in ({userIds});userids就等于“101,202,303”
 
非要使用参数化,就一个值一个参数的拼接。
@userId1 101 int类型
@userId2 202 int类型
@userId3 303 int类型
sql写法就是:where userId in(@userId1,@userId2,@userId3);
参数化的值多了,网上说超过2000个,就不得行了。
也没试过。但如果值很多,就不用in好点吧。

拼接sql 参数化 where userId in(@userIds)的问题的更多相关文章

  1. 存储过程中拼接sql并且参数化

    ALTER PROCEDURE [dbo].[proc_test] ( ) = ' order by id desc ', @userid int, @stime datetime, @etime d ...

  2. 多条件搜索问题 -sql拼接与参数化查询

    来源:传智播客  免费开发视频. 问题:根据书名或出版社或作者查询书籍信息. using System; using System.Collections.Generic问题; using Syste ...

  3. SQL参数化

    本文来自:caodonglin 一.SQL参数化为什么能防注入? 因为执行计划被重用了,所以可以防SQL注入. 下面有两段SQL     正常SQL: 1 select COUNT(1) from C ...

  4. [转帖] SQL参数化的优点 CopyFrom https://www.cnblogs.com/-lzb/articles/4840671.html

    梦在远方的小猪 感谢原作者...  后面总结的五点感觉挺好的.. 自己之前的知识点一直没有串起来. 转帖记录一下感谢. sql参数化参数化 说来惭愧,工作差不多4年了,直到前些日子被DBA找上门让我优 ...

  5. SQL参数化查询

    参数化查询(Parameterized Query 或 Parameterized Statement)是指在设计与数据库链接并访问数据时,在需要填入数值或数据的地方,使用参数 (Parameter) ...

  6. C# 多条件拼接sql

    #region 多条件搜索时,使用List集合来拼接条件(拼接Sql) StringBuilder sql = new StringBuilder("select * from PhoneN ...

  7. 二、sql新增后返回主键|sql 使用 FOR XML PATH实现字符串拼接|sql如果存在就修改不存在就新增

    一.sql新增后返回主键 1,返回自增的主键: INSERT INTO 表名 (字段名1,字段名2,字段名3,…) VALUES (值1,值2,值3,…) SELECT @@IDENTITY 2,返回 ...

  8. 拼接sql是陷阱

    项目临时新增一个功能,此时我们习惯自己拼接一个sql. 更可怕的是,后期用户要求新增查询条件,甚至有上10个查询条件,这时的拼接更头疼,if append append(" status=@ ...

  9. StringBuilder 拼接sql语句比较快

    StringBuilder 拼接sql语句比较快StringBuilder strBuilder = new StringBuilder();strSql += "insert into t ...

  10. 使用表达式避免拼接SQL语句

    在SQL语句编写过程中,无论在存储过程中还是在程序中,有时为了使语句兼容全部情况与某字段的特殊情况,不得不拼接SQL字串 如下表 商品ID 类别ID 1 1 2 1 3 2 4 3 5 3 如果我们要 ...

随机推荐

  1. 记录一个小问题,django+Apache+win7,启动Apache后,打开网页,一直转圈圈,停不下来

    做了一个小网站,主要是为了简单工作,只需要公司局域网访问,所以部署在自己的台式机上. 网站是用django 3.x版本开发的,电脑是win7系统,所以是用的Apache部署的 部署的啥问题都没有,检查 ...

  2. 三步配置阿里巴巴durid监控

    三步配置阿里巴巴durid监控 官方文档 环境:jdk17, 框架springboot3 引入依赖 <properties> <druid>1.2.21</druid&g ...

  3. HarmonyOS语言基础类库开发指南上线啦!

      语言基础类库提供哪些功能?多线程并发如何实现?TaskPool(任务池)和Worker在实现和使用场景上有何不同? 针对开发者关注的并发等语言基础类库的相关能力,我们在新推出的语言基础类库开发指南 ...

  4. HarmonyOS 自定义页面请求与前端页面调试

      一.自定义页面请求响应 Web组件支持在应用拦截到页面请求后自定义响应请求能力.开发者通过onInterceptRequest()接口来实现自定义资源请求响应 .自定义请求能力可以用于开发者自定义 ...

  5. 鸿蒙HarmonyOS实战-ArkUI组件(Navigation)

    一.Navigation Navigation组件通常作为页面的根容器,支持单页面.分栏和自适应三种显示模式.开发者可以使用Navigation组件提供的属性来设置页面的标题栏.工具栏.导航栏等. 在 ...

  6. 英语 one day

    前言 I do not know if it work,but just go. 内容 1.quote vt:摘要,引用 n:引语 He quote a passage from the presid ...

  7. 使用OpenMMLab系列的开源库时,常用的脚本合集。

    使用OpenMMLab系列的开源库时,常用的脚本合集. 开源仓库:gy-7/mmlab_scripts 脚本解释: anchor_visiual.py 生成的锚框可视化 aug_test.py 自动数 ...

  8. React的理解以及特性

    一.是什么 React,用于构建用户界面的 JavaScript 库,提供了 UI 层面的解决方案 遵循组件设计模式.声明式编程范式和函数式编程概念,以使前端应用程序更高效 使用虚拟DOM来有效地操作 ...

  9. SpringCloud做的微服务项目--外卖订餐系统

    本项目用到的组件技术可以参考我上一篇博客,来学习. 项目需求: 客户端:针对普通用户,用户登录,用户退出,菜品订购,我的订单 后台管理系统:针对管理员,管理员登录,管理员退出,添加菜品,查询菜品,修改 ...

  10. 很强!4.7k star,推荐一款Python工具,可实现自动化操作!!

    1.介绍 在日常工作中,肯定会遇到一些重复性的工作,不管是点击某个按钮.写东西,打印东西,还是复制粘贴拷贝资料之类的,需要进行大量的重复操作.按键精灵大家都听说过,传统的方式,大家可以使用按键精灵将操 ...