MYSQL 一個巧用字符函數(shù)做數(shù)據(jù)篩選的題
問題描述:
結構:
test 有兩個字段,
分別是col1和col2,都是字符字段,
里面的內容都是用,號分隔的三個數(shù)字,并且是一一對應的,
比如col1內容是:26,59,6
col2內容是:1502.5,1690,2276.77
一一對應就是26的值是1502.5,59是1690,6對應2276.77
搜索條件:
選擇一個id,比如選擇59,再輸入一個數(shù)字,比如: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位置的數(shù)字對比):
1690<2000
3502.1>2000
1520.77<2000
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 |
+---------+---------------------+
相關文章
MySQL統(tǒng)計函數(shù)GROUP_CONCAT使用陷阱分析
這篇文章主要介紹了MySQL統(tǒng)計函數(shù)GROUP_CONCAT使用中的陷阱,結合實例形式分析了GROUP_CONCAT用于統(tǒng)計時的長度限制問題與相關注意事項,需要的朋友可以參考下2016-06-06
MySQL實現(xiàn)定時自動備份的流程步驟(Windows環(huán)境)
這篇文章主要介紹了MySQL實現(xiàn)定時自動備份的流程步驟(Windows環(huán)境),文中通過圖文結合的方式介紹的非常詳細,對大家的學習或工作有一定的幫助,需要的朋友可以參考下2024-12-12
mysql 直接拷貝data 目錄下文件還原數(shù)據(jù)的實現(xiàn)
這篇文章主要介紹了mysql 直接拷貝data 目錄下文件還原數(shù)據(jù)的實現(xiàn)方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-07-07

