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
MySQL 使用事件(Events)完成计划任务
May 24 MySQL
修改MySQL的默认密码的四种小方法
May 26 MySQL
MySQL系列之十五 MySQL常用配置和性能压力测试
Jul 02 MySQL
MySQL数据库超时设置配置的方法实例
Oct 15 MySQL
MySQL七种JOIN类型小结
Oct 24 MySQL
MySQL中order by的使用详情
Nov 17 MySQL
Mysql中有关Datetime和Timestamp的使用总结
Dec 06 MySQL
mysql 乱码 字符集latin1转UTF8
Apr 19 MySQL
MySQL 数据库范式化设计理论
Apr 22 MySQL
提高系统的吞吐量解决数据库重复写入问题
Apr 23 MySQL
MySQL 执行数据库更新update操作的时候数据库卡死了
May 02 MySQL
数据分析数据库ClickHouse在大数据领域应用实践
Apr 03 #MySQL
一文了解MYSQL三大范式和表约束
MYSQL优化之数据表碎片整理详解
Innodb存储引擎中的后台线程详解
Apr 03 #MySQL
MySQL磁盘碎片整理实例演示
Mysql使用全文索引(FullText index)的实例代码
Apr 03 #MySQL
一文简单了解MySQL前缀索引
You might like
强烈推荐:php.ini中文版(2)
2006/10/09 PHP
phpMyAdmin2.11.6安装配置方法
2008/08/24 PHP
PHP获取服务器端信息的方法
2014/11/28 PHP
php+ajax无刷新上传图片的实现方法
2016/12/06 PHP
延时重复执行函数 lLoopRun.js
2007/05/08 Javascript
javascript 写类方式之五
2009/07/05 Javascript
Jquery中ajax方法data参数的用法小结
2014/02/12 Javascript
跟我学习javascript的闭包
2015/11/16 Javascript
如何解决ligerUI布局时Center中的Tab高度大小
2015/11/24 Javascript
jQuery Validation PlugIn的使用方法详解
2015/12/18 Javascript
ES6中Array.find()和findIndex()函数的用法详解
2017/09/16 Javascript
基于js 各种排序方法和sort方法的区别(详解)
2018/01/03 Javascript
element-ui 的el-button组件中添加自定义颜色和图标的实现方法
2018/10/26 Javascript
javascript中contains是否包含功能实现代码(扩展字符、数组、dom)
2020/04/07 Javascript
Vue初始化中的选项合并之initInternalComponent详解
2020/06/11 Javascript
Vue 实现监听窗口关闭事件,并在窗口关闭前发送请求
2020/09/01 Javascript
uniapp开发小程序实现滑动页面控制元素的显示和隐藏效果
2020/12/10 Javascript
python生成验证码图片代码分享
2016/01/28 Python
Python批量修改文本文件内容的方法
2016/04/29 Python
window下eclipse安装python插件教程
2017/04/24 Python
Django objects.all()、objects.get()与objects.filter()之间的区别介绍
2017/06/12 Python
Python2/3中urllib库的一些常见用法
2017/12/19 Python
python如何压缩新文件到已有ZIP文件
2018/03/14 Python
对Django中static(静态)文件详解以及{% static %}标签的使用方法
2019/07/28 Python
简单了解python中的与或非运算
2019/09/18 Python
python小白切忌乱用表达式
2020/05/29 Python
详解PyQt5中textBrowser显示print语句输出的简单方法
2020/08/07 Python
英国最大的奢侈珠宝和手表网站:C W Sellors
2017/02/10 全球购物
城市规划毕业生求职信
2013/10/10 职场文书
国际会议邀请函范文
2014/01/16 职场文书
承诺书格式范文
2014/06/03 职场文书
自荐信怎么写
2015/03/04 职场文书
看上去很美观后感
2015/06/10 职场文书
小学教育见习总结
2015/06/23 职场文书
七一晚会主持词
2015/06/29 职场文书
诚实守信主题班会
2015/08/13 职场文书