加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MySql教程 > 正文

Mysql实例MYSQL 一个巧用字符函数做数据筛选的题

发布时间:2020-12-12 01:04:41 所属栏目:MySql教程 来源:网络整理
导读:《Mysql实例MYSQL 一个巧用字符函数做数据筛选的题》要点: 本文介绍了Mysql实例MYSQL 一个巧用字符函数做数据筛选的题,希望对您有用。如果有疑问,可以联系我们。 MYSQL应用 问题描述: MYSQL应用 结构: MYSQL应用 test 有两个字段, 分别是col1和col2,都

《Mysql实例MYSQL 一个巧用字符函数做数据筛选的题》要点:
本文介绍了Mysql实例MYSQL 一个巧用字符函数做数据筛选的题,希望对您有用。如果有疑问,可以联系我们。

MYSQL应用问题描述:

MYSQL应用结构:

MYSQL应用test 有两个字段,
分别是col1和col2,都是字符字段,
里面的内容都是用,号分隔的三个数字,并且是一一对应的,

MYSQL应用比如col1内容是:26,59,6
col2内容是:1502.5,1690,2276.77
一一对应就是26的值是1502.5,59是1690,6对应2276.77

MYSQL应用
搜索条件:

MYSQL应用选择一个id,比如选择59,再输入一个数字,比如:2000
然后就是搜索col1中存在id=59的记录,然后搜索col2小于2000,即1690<2000

MYSQL应用举例:

MYSQL应用如有以下三条记录,搜索id为59,值小于2000的记录:

MYSQL应用26,6 | 1502.5,2276.77
59,33,6 | 3502.1,1020,2276.77
22,8,59 | 1332.6,2900,1520.77

MYSQL应用搜索到这三个记录存在id为59,之后判断第二个搜索条件应为(即用对应id位置的数字对比):

MYSQL应用1690<2000
3502.1>2000
1520.77<2000

MYSQL应用
drop table test; 
create table test ( col1 varchar(100),col2 varchar(100)); 
insert test select 
'26,6','1502.5,2276.77' union all select 
'59,'3502.1,2276.77' union all select 
'22,59','1332.6,1520.77'; 
select col1,col2 
from (select *,find_in_set('59',col1) as rn from test) k 
where substring_index(concat(',',substring_index(col2,rn)),-1) 
 <'2000'; 

MYSQL应用+---------+---------------------+

MYSQL应用| col1 ? ?| col2 ? ? ? ? ? ? ? ?|

MYSQL应用+---------+---------------------+

MYSQL应用| 26,2276.77 |

MYSQL应用| 22,1520.77 |

MYSQL应用+---------+---------------------+

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读