sql 字符串变为查询ID号
来源:互联网 发布:java接口和抽象类区别 编辑:程序博客网 时间:2024/04/30 11:45
1、新建表
- drop table if exists Category;
- create table Category
- (
- cateId int(5) not null AUTO_INCREMENT,
- chiName varchar(80),
- primary key (cateId)
- );
- drop table if exists OpenRecord;
- create table OpenRecord
- (
- opreId int(5) not null AUTO_INCREMENT,
- cateIds varchar(80),
- primary key (opreId)
- );
2、初始化数据
- insert Category(chiName) values (fish),(shrimp),(crab),(tiger);
- insert OpenRecord(cateIds) values(1,2);
- insert OpenRecord(cateIds) values(2,3);
3、查询OpenRecord中Id为1包括的Category 。
#错误的方法
- select *
- from Category
- where (select INSTR(cateIds,cateId) from OpenRecord where opreId=1)
#正确的方法
- select *
- from Category
- where (select FIND_IN_SET(cateId,cateIds) from OpenRecord where opreId=1)
用INSTR会出现当ID大于10的时候,查ID为1的数据,会把1,10,11,12......的都拿出来 。
4、扩展会出现的问题 。
用FIND_IN_SET可以解决ID是用","号隔开的问题 。然而会有另外的两种情况 。
A、当ID不包含",",但是用别的符号分开时,如用"|" 。我们有如下的解决办法
- select *
- from Category
- where (select FIND_IN_SET(cateId,REPLACE(cateIds,|,,)) from OpenRecord where opreId=1)
- sql 字符串变为查询ID号
- sql 子查询变为链接查询
- 获得查询字符串,变为对象格式
- SQL 大数据ID查询
- SQL语句查询结果由行变为列[辉]
- SQL语句查询结果由行变为列
- sql将查询出的数值变为中文
- SQL字符串模糊查询
- SQL查询合并字符串
- SQL查询合并字符串
- sql 查询最大非主键ID方法
- sql 查询指定的id数据
- SQL查询ID以逗号分隔,id对应的详细信息
- 数字变为字符串
- SQL charindex 通过id字符串获取数据
- Sql查询字符串的位置
- SQL 查询中连接字符串
- 将sqlserver中的datetime字段变为yyyy-mm-dd格式字符串的sql语句
- yum install 在红帽中提示”This system is not registered with RHN”的解决方案
- Android测试(1)-普通类的测试
- C#连接oracle实现增删改查
- Oracle 绑定变量
- 禁用IE和火狐的缓存问题
- sql 字符串变为查询ID号
- 剖析MFC六大关键技术 四 永久保存(串行化)
- BCB 静态编译
- eclipse RCP开发 table相关的操作
- java取集合中指定的元素
- poj21029 Power of Cryptography
- 错误C2665: “AfxMessageBox”: 2 个重载中没有一个可以转换所有参数类型
- Java RMI之HelloWorld篇
- 【Android基本控件】ListView 的用法