首頁 > 資料庫 > mysql教程 > MYSQL使用一個字元函數做資料篩選問題

MYSQL使用一個字元函數做資料篩選問題

黄舟
發布: 2017-05-21 09:31:03
原創
1489 人瀏覽過

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

22,8,59 | 1332.6,2900,1520.這三個記錄存在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 
&#39;26,59,6&#39;, &#39;1502.5,1690,2276.77&#39; union all select 
&#39;59,33,6&#39;, &#39;3502.1,1020,2276.77&#39; union all select 
&#39;22,8,59&#39;, &#39;1332.6,2900,1520.77&#39;; 
select col1,col2 
from (select *,find_in_set(&#39;59&#39;,col1) as rn from test) k 
where substring_index(concat(&#39;,&#39;,substring_index(col2,&#39;,&#39;,rn)),&#39;,&#39;,-1) 
 <&#39;2000&#39;;
登入後複製
+---------+---------------------+
| col1    | col2                |
+---------+---------------------+
| 26,59,6 | 1502.5,1690,2276.77 |
| 22,8,59 | 1332.6,2900,1520.77 |
+---------+---------------------+
登入後複製

以上是MYSQL使用一個字元函數做資料篩選問題的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板