当前位置: 首页 > news >正文

MySQL中in(‘1,2,3‘)只取第一个id为1对应的数据

mysql 使用id in(‘1,2,3’) 的时候,只能查到id=1的数据的解决方法

前提:
t_user表有三条数据,id分别是1、2、3

场景1
查询:select * from t_user where id in(1,2,3)
结果:三条数据
正常

场景2
查询:select * from t_user where id in(‘1,2,3’)
结果:只有id=1的数据

为什么场景2只有1条结果返回?
为什么场景2入参是字符串的’1,2,3’只返回了1条数据,因为:
mysql 中执行 in函数的时候,会将入参字符串‘1,2’通过 CAST(‘1,2,3’ AS SIGNED) 方法优化,最终取第一个参数1,所以执行后的结果就是只有id=1的数据。

解决场景2问题
如何当入参是字符串‘1,2,3’的时候,还能查出三条数据呢
解决:用FIND_IN_SET方法,第一个参数放字段名,第二个参数放字符串的多个id
select * from t_user where FIND_IN_SET(id, ‘1,2,3’)

原因分析:

MySQL中in里面如果是字符串的话,会自动使用类似CAST(‘5,6,7’ AS INT)方法转化成int类型,对于数字开头的字符串来说,转为数字的结果就是截取前面的数字部分(本例中第一个逗号前的数据),对于开头部分不能截取出数字的字符串来说,转换的结果自然就是0了

相关文章:

  • 专注于自媒体短视频领域四年后的运营问题汇总-第一集
  • 网络安全系列-三十四: 基于网络流量的设备识别
  • 第3章 栈和队列 编程题
  • Redis面试
  • python正则表达式(三)
  • 雷达信号处理算法:静态杂波滤除(附MATLAB代码和数据)
  • Doing It in User Space
  • Vue2:网易云播放音乐并实现同步一次显示一行歌词
  • 这四个问题处理好,无人机集群编队研究会有新突破
  • 【JavaSE】之JVM入门(上)
  • 《计算机视觉基础知识蓝皮书》第7篇 模型优化方法及思路
  • java毕业设计牙科诊所管理系统Mybatis+系统+数据库+调试部署
  • 蓝桥杯2022年(本科c++b组)
  • pytorch :OSError: [WinError 1455] 页面文件太小,无法完成操作。 Error loading 【已解决】
  • 【BData12】Hadoop HDFSMapReduse
  • 9月CHINA-PUB-OPENDAY技术沙龙——IPHONE
  • (ckeditor+ckfinder用法)Jquery,js获取ckeditor值
  • [rust! #004] [译] Rust 的内置 Traits, 使用场景, 方式, 和原因
  • Akka系列(七):Actor持久化之Akka persistence
  • C# 免费离线人脸识别 2.0 Demo
  • ES学习笔记(10)--ES6中的函数和数组补漏
  • gulp 教程
  • HTTP 简介
  • IOS评论框不贴底(ios12新bug)
  • Laravel深入学习6 - 应用体系结构:解耦事件处理器
  • miniui datagrid 的客户端分页解决方案 - CS结合
  • mongodb--安装和初步使用教程
  • orm2 中文文档 3.1 模型属性
  • rc-form之最单纯情况
  • React+TypeScript入门
  • tensorflow学习笔记3——MNIST应用篇
  • Tornado学习笔记(1)
  • use Google search engine
  • Vue 2.3、2.4 知识点小结
  • XForms - 更强大的Form
  • 阿里研究院入选中国企业智库系统影响力榜
  • 仿天猫超市收藏抛物线动画工具库
  • 入手阿里云新服务器的部署NODE
  • 双管齐下,VMware的容器新战略
  • Salesforce和SAP Netweaver里数据库表的元数据设计
  • 新年再起“裁员潮”,“钢铁侠”马斯克要一举裁掉SpaceX 600余名员工 ...
  • ​二进制运算符:(与运算)、|(或运算)、~(取反运算)、^(异或运算)、位移运算符​
  • ​如何防止网络攻击?
  • # 20155222 2016-2017-2 《Java程序设计》第5周学习总结
  • # centos7下FFmpeg环境部署记录
  • #我与Java虚拟机的故事#连载14:挑战高薪面试必看
  • (01)ORB-SLAM2源码无死角解析-(56) 闭环线程→计算Sim3:理论推导(1)求解s,t
  • (第9篇)大数据的的超级应用——数据挖掘-推荐系统
  • (定时器/计数器)中断系统(详解与使用)
  • (二)fiber的基本认识
  • (附源码)spring boot校园健康监测管理系统 毕业设计 151047
  • (附源码)springboot宠物医疗服务网站 毕业设计688413
  • (深度全面解析)ChatGPT的重大更新给创业者带来了哪些红利机会
  • (十八)三元表达式和列表解析
  • (四)库存超卖案例实战——优化redis分布式锁