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基础(一)
Apr 05 MySQL
多表查询、事务、DCL
Apr 05 MySQL
MySQL复制问题的三个参数分析
Apr 07 MySQL
MYSQL数据库使用UTF-8中文编码乱码的解决办法
May 26 MySQL
MySQL CHAR和VARCHAR该如何选择
May 31 MySQL
MySQL数据库超时设置配置的方法实例
Oct 15 MySQL
关于mysql中时间日期类型和字符串类型的选择
Nov 27 MySQL
mysql查找连续出现n次以上的数字
May 11 MySQL
MySql如何将查询的出来的字段进行转换
Jun 14 MySQL
MySQL的意向共享锁、意向排它锁和死锁
Jul 15 MySQL
MySQL 原理优化之Group By的优化技巧
Aug 14 MySQL
详解MySQL的内连接和外连接
May 08 MySQL
数据分析数据库ClickHouse在大数据领域应用实践
Apr 03 #MySQL
一文了解MYSQL三大范式和表约束
MYSQL优化之数据表碎片整理详解
Innodb存储引擎中的后台线程详解
Apr 03 #MySQL
MySQL磁盘碎片整理实例演示
Mysql使用全文索引(FullText index)的实例代码
Apr 03 #MySQL
一文简单了解MySQL前缀索引
You might like
最贵的咖啡是怎么产生的,它的风味怎么样?
2021/03/04 新手入门
PHP 加密解密内部算法
2010/04/22 PHP
php中url函数介绍及使用示例
2014/02/13 PHP
php中实现记住密码下次自动登录的例子
2014/11/06 PHP
浅谈PHP检查数组中是否存在某个值 in_array 函数
2016/06/13 PHP
Jquery下attr和removeAttr的使用方法
2010/12/28 Javascript
JavaScript sub方法入门实例(把字符串显示为下标)
2014/10/17 Javascript
jQuery实现鼠标悬停显示提示信息窗口的方法
2015/04/30 Javascript
根据user-agent判断蜘蛛代码黑帽跳转代码(js版与php版本)
2015/09/14 Javascript
基于jquery实现鼠标滚轮驱动的图片切换效果
2015/10/26 Javascript
ionic实现带字的toggle滑动组件
2016/08/27 Javascript
javascript ASCII和Hex互转的实现方法
2016/12/27 Javascript
Vue.js 插件开发详解
2017/03/29 Javascript
addeventlistener监听scroll跟touch(实例讲解)
2017/08/04 Javascript
express+mockjs实现模拟后台数据发送功能
2018/01/07 Javascript
分享5个好用的javascript文件上传插件
2018/09/16 Javascript
[01:20:37]FNATIC vs NIP 2019国际邀请赛小组赛 BO2 第一场 8.16
2019/08/19 DOTA
Python使用Scrapy保存控制台信息到文本解析
2017/12/27 Python
Python通过TensorFlow卷积神经网络实现猫狗识别
2019/03/14 Python
python wav模块获取采样率 采样点声道量化位数(实例代码)
2020/01/22 Python
基于Python获取docx/doc文件内容代码解析
2020/02/17 Python
CSS3 真的会替代 SCSS 吗
2021/03/09 HTML / CSS
html5使用canvas压缩图片的示例代码
2018/09/11 HTML / CSS
英国最专业的健身器材供应商之一:Best Gym Equipment
2017/12/22 全球购物
澳大利亚香水在线:Price Rite Mart
2017/12/28 全球购物
微软马来西亚官方网站:Microsoft马来西亚
2019/11/22 全球购物
澳大利亚家用电器在线商店:Billy Guyatts
2020/05/05 全球购物
无工作经验者个人求职信范文
2013/12/22 职场文书
党员承诺书内容
2014/03/26 职场文书
医师定期考核实施方案
2014/05/07 职场文书
挂牌仪式策划方案
2014/05/18 职场文书
药店促销活动策划方案
2014/08/24 职场文书
观后感格式
2015/06/19 职场文书
六年级语文教学反思
2016/03/03 职场文书
导游词之山东八大关
2019/12/18 职场文书
基于Golang 高并发问题的解决方案
2021/05/08 Golang