程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> MySQL綜合教程 >> MYSQL 一個巧用字符函數做數據篩選的題

MYSQL 一個巧用字符函數做數據篩選的題

編輯:MySQL綜合教程

MYSQL 一個巧用字符函數做數據篩選的題。本站提示廣大學習愛好者:(MYSQL 一個巧用字符函數做數據篩選的題)文章只能為提供參考,不一定能成為您想要的結果。以下是MYSQL 一個巧用字符函數做數據篩選的題正文


MYSQL 一個巧用字符函數做數據篩選的題

投稿:mdxy-dxy

這篇文章主要介紹了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

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 |

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

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved