mysql中使用IN的注意事项

这篇具有很好参考价值的文章主要介绍了mysql中使用IN的注意事项。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

前言

在写sql语句过程中,难免会使用IN条件查询,那你知道使用IN要注意那些事项呢?下面我们就来一列举

注意事项

  1. 使用IN查询是否会使用索引
    答:有时会使用,有时就不会使用。当IN 的范围小时会使用索引查询,当IN的范围大的时候,就会全表扫描。

  2. IN和EXISTS那个效率高
    答:1、如果查询的两个表大小相当,那么用in和exists差别不大。
    2、如果两个表中一个表大,另一个是表小,那么IN适合于外表大而子查询表小的情况。
    3、如果两个表中一个表大,另一个是表小,EXISTS适合于外表小而子查询表大的情况。

  3. IN的括号中能否使用以逗号隔开的字符串
    答:不可以,只会匹配所谓的“第一个” 值,使用GROUP_CONCAT拼接起来的也不行,比如下面的查询,最多查出一条记录,实际有很多条.

SELECT * FROM goods_detail WHERE id IN(SELECT GROUP_CONCAT(goods_detail_id) FROM good_record WHERE order_detail_id = xxx);
  1. NOT IN 会不会使用索引
    答:绝对不会使用索引,要谨慎使用。

  2. 新手最容易犯的错误
    答:在程序中将多个值以逗号分隔拼成一个字符串,然后传sql中使用IN查询,比如:
    String var = “1,2,3,4”;

select * from dual id IN(#{var});

这样做是错的,千万要记住。文章来源地址https://www.toymoban.com/news/detail-788981.html

到了这里,关于mysql中使用IN的注意事项的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • MySQL 索引的优缺点及索引注意事项

    MySQL索引是数据库中用于加快数据检索速度的一种数据结构。它在数据库表中的列上创建一个索引,以便数据库可以更快地查找和访问数据。 优点: 快速检索:索引可以大大减少数据库查询的时间,特别是在大型表中。通过使用索引,数据库可以直接跳转到符合查询条件的数

    2024年02月15日
    浏览(40)
  • MySQL5 和 MySQL8 的配置区别 & 一些注意事项

    先保证你的mysql正在运行,假如用户名是 root ,密码是 123456 ,运行下边的代码可以查看mysql的版本号。 这里我的版本是5.7.19。也就是5版本的。 注意:下边的url区别不用管。看到这就可以了。 当然8版本的后边不写也没事。 不建议在没有服务器身份验证的情况下建立SSL连接。

    2024年02月05日
    浏览(40)
  • 学习Linux的注意事项(使用经验;目录作用;服务器注意事项)

    本篇分享学习Linux过程中的一些经验 Linux严格区分大小写 Linux中所有内容以文件形式保存 ,包括硬件,Linux是以管理文件的方式操作硬件 硬盘文件是 /dev/sd[a-p] 光盘文件是 /dev/sr0 等 对于设置需要写入文件,命令行的设置在重启之后就会失效,只有下入文件才可以保存下来 文

    2024年02月11日
    浏览(69)
  • 【Jetpack】ViewModel 架构组件 ( 视图 View 和 数据模型 Model | ViewModel 作用 | ViewModel 生命周期 | 代码示例 | 使用注意事项 )

    Activity 遇到的问题 : 瞬态数据丢失 : 操作 Activity 时 , 如果 屏幕 自动旋转 , 当前 Activity 组件会 执行销毁操作 , 并重新创建新的 Activity 组件 , 该操作会 导致 Activity 的 瞬态数据 丢失 ; 内存泄漏 : 在 系统组件 如 Activity 中 , 启动了一个线程 , 在线程中执行一系列操作 , 如果 A

    2024年01月25日
    浏览(47)
  • 在CentOS 7上安装MySQL 5.7的详细步骤和注意事项

    目录 前言  一、更新系统 二、下载MySQL存储库 三、安装MySQL存储库 四、安装MySQL服务器  五、启动MySQL服务 六、配置MySQL 七、验证MySQL安装 八、登录MySQL 九、配置远程访问(可选) 1. 在MySQL shell中创建新用户 2. 授予新用户远程访问权限  3. 更新更改  十、重新启动MySQL服务

    2024年02月11日
    浏览(51)
  • Golang 包使用注意事项

    1)在给一个文件打包时,该包对应一个文件夹,比如这里的utils文件夹对应的包名就是utils, 文件的包名通常和文件所在的文件夹名一致,一般为小写字母。 2)当一个文件要使用其它包函数或变量时,需要先引入对应的包 引入方式1:import \\\"包名\\\" 引入方式2: 3)package指令在

    2024年02月03日
    浏览(59)
  • grpc流式使用和注意事项

    流式grpc Server-side streaming RPC:服务器端流式 RPC Client-side streaming RPC:客户端流式 RPC Bidirectional streaming RPC:双向流式 RPC 客户端代码 服务端代码 验证 分析 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-eRmLdnpt-1622633151060)(readme.assets/image-202105271114

    2023年04月10日
    浏览(38)
  • PowerSmart导入Bode图数据—注意事项

    TXT文档中不能出现空白行,否则会被解析失败。 由于TXT的数据格式问题导致Bode图数据导入失败  正确格式 上面导致失败,原因在于我们在TXT文本末尾按了回车,使TXT文件多了空白行。所以会导致PowerSmart软件解析失败,我们只要将TXT文件末尾的空白行删除,然后再导入即可。

    2024年01月16日
    浏览(39)
  • 第一次使用git注意事项

    一、git 第一次使用配置 配置用户名和邮箱 git config --global user.name “用户名” git config --global user.email “邮箱” 查看用户名和邮箱 git config user.name 显示:用户名 输入 git config user.email 显示用户邮箱 查看是否生成过SSH Key(密钥) 输入:cd ~/.ssh 输入:ls 输出 如果没有id_rsa 和 id

    2024年02月07日
    浏览(62)
  • TheadLocal的使用场景和注意事项

    在多线程编程中,数据共享和线程安全问题是一个很大的挑战。为了解决这个问题,Java 提供了 ThreadLocal 类,它能够让每个线程维护自己独立的变量副本。 ThreadLocal 的作用就是:为每个线程创建一个独立的变量副本,使得每个线程都可以操作自己的变量,而不会影响其他线程

    2024年02月07日
    浏览(41)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包