ホームページ >運用・保守 >Linuxの運用と保守 >MYSQL によるデータ フィルタリングのための文字関数の賢明な使用
この記事では主に、MYSQL でデータをフィルタリングするための文字関数の使用に関する質問を紹介します。必要な方は参考にしていただければ幸いです。
問題の説明:
構造:
testにはそれぞれ
col1とcol2という2つのフィールドがあり、両方とも文字フィールドであり、
の内容は ,
たとえば、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) <'2000';
+--------+-------- ------------+
|col1 |
+---------+------ ----+
| 26,59,6 | 1502.5,1690,2276.77 | | 1332.6,2900,1520.77 | -------------------+関連する推奨事項:php は文字列関数 str_ireplace() 内の一部の文字を置換します
php は文字関数 chr( ) 指定された ASCII 値から
以上がMYSQL によるデータ フィルタリングのための文字関数の賢明な使用の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。