ホームページ >運用・保守 >Linuxの運用と保守 >MYSQL によるデータ フィルタリングのための文字関数の賢明な使用

MYSQL によるデータ フィルタリングのための文字関数の賢明な使用

小云云
小云云オリジナル
2018-01-24 13:36:342066ブラウズ

この記事では主に、MYSQL でデータをフィルタリングするための文字関数の使用に関する質問を紹介します。必要な方は参考にしていただければ幸いです。

問題の説明:

構造:

testにはそれぞれ
col1とcol2という2つのフィールドがあり、両方とも文字フィールドであり、
の内容は ,

で区切られた3つの数値です。

たとえば、col1 の内容は 26、59、6 です
col2 の内容は 1502.5、1690、2276.77 です
1 対 1 対応とは、26 の値は 1502.5、59 は 1690、6 であることを意味します2276.77に相当します


検索条件:

59などのIDを選択し、2000などの数値を入力します
次に、col1でid=59のレコードを検索し、次に2000未満のcol2を検索します。は、1690

例:

次の 3 つのレコードがある場合、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

検索により、これら 3 つのレコードの ID は 59 であることがわかり、2 番目の検索条件は (つまり、数値を使用する必要がある) と判断されました。比較する ID の位置に対応):

16903502.1>2000
1520.77


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) 
 <&#39;2000&#39;;

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

|col1 |

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

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

| 1332.6,2900,1520.77 | -------------------+

関連する推奨事項:

php は文字列関数 str_ireplace() 内の一部の文字を置換します

php は文字関数 chr( ) 指定された ASCII 値から

MySQL データベースの文字関数の詳細な説明

以上がMYSQL によるデータ フィルタリングのための文字関数の賢明な使用の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。