MYSQL之巧用字符函数做数据筛选


本文摘自PHP中文网,作者小云云,侵删。

本文主要介绍了MYSQL 一个巧用字符函数做数据筛选的题,需要的朋友可以参考下,希望能帮助到大家。

问题描述:

结构:

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

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


搜索条件:

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

举例:

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

26,59,6 | 1502.5,1690,2276.77
59,33,6 | 3502.1,1020,2276.77
22,8,59 | 1332.6,2900,1520.77

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

1690<2000
3502.1>2000
1520.77<2000


1

2

3

4

5

6

7

8

9

10

drop table test;

create table test ( col1 varchar(100),col2 varchar(100));

insert test select

'26,59,6', '1502.5,1690,2276.77' union all select

'59,33,6', '3502.1,1020,2276.77' union all select

'22,8,59', '1332.6,2900,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';

+---------+---------------------+

| col1 | col2 |

+---------+---------------------+

| 26,59,6 | 1502.5,1690,2276.77 |

| 22,8,59 | 1332.6,2900,1520.77 |

+---------+---------------------+

相关推荐:

php替换字符串中的一些字符函数str_ireplace()

php从指定ASCII值返回字符函数chr()

MySQL数据库之字符函数详解

以上就是MYSQL之巧用字符函数做数据筛选的详细内容,更多文章请关注木庄网络博客

相关阅读 >>

怎么在docker上跑mysql

mysql之巧用字符函数做数据筛选

linux环境下mysql无法启动

linux怎么登录mysql

linux中如何查看mysql的安装位置

linux下mysql出现中文乱码(中文问号)的原因及解决方法

linux下怎么杀死mysql进程

centos下mysql安装失败怎么办

centos 6.5如何安装mysql

解决securecrt下mysql的中文乱码

更多相关阅读请进入《mysql》频道 >>



打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...