mysql使用instr达到in(字符串)的效果


Posted in MySQL onApril 03, 2022

使用mysql遇到一种情况:
需要查出id在某一个id拼接的字符串中的记录,这个时候用id in(id1,id2,...)行不通,因为in语法里面的参数是数字型的,应该用instr语法,instr(idsStr,id)其中idsStr=‘id1,id2,id3…’
下面举例说明:

1 建表

create table t_city (id int(10) ,name varchar(20));

mysql使用instr达到in(字符串)的效果

insert into t_city values (1,'北京'),(2,'上海'),(3,'广州'),(4,'深圳'),(5,'杭州'),(12,'武汉');

mysql使用instr达到in(字符串)的效果

2 查询

现在我需要查询id在字符串’1,2,3’里的城市,但是用in语法是不行的,因为in语法的参数不是字符串,可以用下面的方式来达到相同效果

select * from t_city where instr('1,2,3',id);

mysql使用instr达到in(字符串)的效果
结果正确。但是如果我要查询id在字符串’3,4,5,12’里的城市,会发现结果出现偏差,查出了6个城市

select * from t_city where instr('3,4,5,12',id);

mysql使用instr达到in(字符串)的效果
原来是由于武汉的id为12,而北京id为1,上海的id为2,根据instr的语义, id=1或2或12都能查出来,所以修改一下查法

select * from t_city where instr(',3,4,5,12,',concat(',',id,','));

mysql使用instr达到in(字符串)的效果

总结:
此用法是对instr函数一个偏门的使用,在某些特定的场合下,可以用来达到in函数的效果,但是存在一定的局限性,比如要通过特殊字符使每个值构成唯一避免出现偏差,使用的时候要注意。

MySQL 相关文章推荐
MySQL 8.0 Online DDL快速加列的相关总结
Jun 02 MySQL
解决mysql:ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO/YES)
Jun 26 MySQL
深入解析MySQL索引数据结构
Oct 16 MySQL
MySQL数据库⾼可⽤HA实现小结
Jan 22 MySQL
将MySQL的表数据全量导入clichhouse库中
Mar 21 MySQL
mysql数据插入覆盖和时间戳的问题及解决
Mar 25 MySQL
mysql insert 存在即不插入语法说明
Mar 25 MySQL
Mysql如何实现不存在则插入,存在则更新
Mar 25 MySQL
Mysql开启外网访问
May 15 MySQL
详解Mysql数据库平滑扩容解决高并发和大数据量问题
May 25 MySQL
mysql sock 文件解析及作用讲解
Jul 15 MySQL
数据分析数据库ClickHouse在大数据领域应用实践
Apr 03 #MySQL
一文了解MYSQL三大范式和表约束
MYSQL优化之数据表碎片整理详解
Innodb存储引擎中的后台线程详解
Apr 03 #MySQL
MySQL磁盘碎片整理实例演示
Mysql使用全文索引(FullText index)的实例代码
Apr 03 #MySQL
一文简单了解MySQL前缀索引
You might like
通过dbi使用perl连接mysql数据库的方法
2014/04/16 PHP
Yii框架中memcache用法实例
2014/12/03 PHP
微信公众号开发之语音消息识别php代码
2016/08/08 PHP
无语,javascript居然支持中文(unicode)编程!
2007/04/12 Javascript
JavaScript 拾漏补遗
2009/12/27 Javascript
JavaScript入门之事件、cookie、定时等
2011/10/21 Javascript
Ext4.2的Ext.grid.plugin.RowExpander无法触发事件解决办法
2014/08/15 Javascript
百度坐标(BD09)、国测局坐标(火星坐标,GCJ02)、和WGS84坐标系之间的转换
2016/02/19 Javascript
在AngularJS中使用jQuery的zTree插件的方法
2016/04/21 Javascript
面包屑导航详解
2017/12/07 Javascript
关于redux-saga中take使用方法详解
2018/02/27 Javascript
详解如何解决Vue和vue-template-compiler版本之间的问题
2018/09/17 Javascript
vue根据进入的路由进行原路返回的方法
2018/09/26 Javascript
ES6实现图片切换特效代码
2020/01/14 Javascript
js实现聊天对话框
2020/02/08 Javascript
js实现贪吃蛇游戏 canvas绘制地图
2020/09/09 Javascript
Vue+element+cookie记住密码功能的简单实现方法
2020/09/20 Javascript
微信小程序实现可长按移动控件
2020/11/01 Javascript
python的变量与赋值详细分析
2017/11/08 Python
pandas删除指定行详解
2019/04/04 Python
Django框架视图介绍与使用详解
2019/07/18 Python
python实现批量文件重命名
2019/10/31 Python
python实现密度聚类(模板代码+sklearn代码)
2020/04/27 Python
python3处理word文档实例分析
2020/12/01 Python
HTML5 Canvas+JS控制电脑或手机上的摄像头实例
2014/05/03 HTML / CSS
荷兰鞋子在线:Nelson Schoenen
2017/12/25 全球购物
Love, Bonito国际官网:新加坡女装品牌
2021/03/13 全球购物
自主招生自荐信范文
2013/12/04 职场文书
中层干部岗位职责
2013/12/18 职场文书
2014年幼儿园植树节活动方案
2014/03/02 职场文书
美术专业自荐信
2014/07/07 职场文书
青年文明号汇报材料
2014/12/23 职场文书
计划生育汇报材料
2014/12/26 职场文书
部门经理助理岗位职责
2015/04/13 职场文书
交通安全宣传标语(100条)
2019/08/22 职场文书
Spring boot admin 服务监控利器详解
2022/08/05 Java/Android