MYSQL 文字関数を使用してデータをフィルタリングすることに関する質問

MYSQL 文字関数を使用してデータをフィルタリングすることに関する質問

問題の説明:

構造:

テストには2つのフィールドがあります。
これらは col1 と col2 で、どちらも文字フィールドです。
内容は で区切られた 3 つの数字で、それぞれが 1 対 1 で対応しています。

たとえば、col1の内容は26,59,6です。
col2 の内容は: 1502.5,1690,2276.77
一対一の対応は、26の値は1502.5、59は1690、6は2276.77に対応する。


検索条件:

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

例:

次の 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

ID 59 の 3 つのレコードが検索され、2 番目の検索条件が次のように決定されます (つまり、対応する ID 位置の数字が比較されます)。

1690<2000
3502.1>2000
1520.77<2000

ドロップテーブルテスト。 
テーブル test ( col1 varchar(100), col2 varchar(100)) を作成します。 
挿入テスト選択 
'26,59,6'、'1502.5,1690,2276.77' 結合すべて選択 
'59,33,6'、'3502.1,1020,2276.77' 結合すべて選択 
'22,8,59'、'1332.6,2900,1520.77'; 
列1、列2を選択 
(select *,find_in_set('59',col1) as rn from test) kから 
ここで、substring_index(concat(',',substring_index(col2,',',rn)),',',-1) 
 <'2000'; 

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

| 列1 | 列2 |

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

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

| 22,8,59 | 1332.6,2900,1520.77 |

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

<<:  jsはユーザーのページ操作を記憶するためにクッキーを使用します

>>:  Dockerコンテナを外部IPとポートにバインドする方法

推薦する

Mysql GTID Mha 設定方法

Gtid + Mha + Binlog サーバー構成: 1: テスト環境OS: CentOS 6.5...

初心者のためのWebサイト構築入門 ③ エイリアス(CNAME)レコードとURL転送

①. エイリアス(CNAME)レコードの使用方法:前回の投稿のドメイン名解決では、A レコードの解...

MySQL Shell import_tableデータインポートの実装

目次1. import_tableの紹介2. データのロードとテーブル関数のインポートの例2.1 L...

「fsck」を使用して Linux のファイルシステムエラーを修正する方法

序文ファイル システムは、データの保存方法と復元方法を整理する役割を担います。 いずれにせよ、時間の...

優れたHTML印刷コードがページめくりをサポート

ylbtech_html_print HTML 印刷コード、ページめくりをサポートコードをコピーコー...

MySQL MyISAM と InnoDB の違い

違い: 1. InnoDB はトランザクションをサポートしていますが、MyISAM はサポートしてい...

MySQL Workbench の使い方チュートリアルの詳しい説明

目次(I) Workbenchを使用してデータベースを操作する①データベースを作成する② データベー...

HTTPSの最も優れた説明

皆さんおはようございます。しばらく記事を更新していませんでした。実は、私は流行中に1か月以上家にいて...

一般的な nginx コマンドをシェル スクリプトに組み込む方法の詳細な説明

1. nginxシェルスクリプトを保存するフォルダを作成する /usr/local/タスク/ngin...

ファイル操作のためのLinuxシステムコール

目次1. ファイルを開くパラメータの紹介2. ファイルの読み取り3. ファイルを書き込む4. 閉じる...

Linux で MySQL 8.0 バージョンをアンインストールする方法

1. MySQLをシャットダウンする [root@localhost /]# サービスmysqldを...

Unix/Linuxフォークの隠れたオーバーヘッド

目次1. フォークの起源2. 初期のUNIXオーバーレイ技術3. UNIXに導入される前のフォークの...

MySQL InnoDB トランザクション ロック ソースコード分析

目次1. ロックとラッチ2. 繰り返し読み取り3. インサートロックプロセス3.1 ロックモード3....

フロントエンドHTMLスキン変更機能の実装コード

透明を含む5つの肌の色を変更するには50行のコードが必要です最初にコードをお渡ししますので、ご自身で...

シンプルな計算機を実装するためのネイティブ js

この記事の例では、参考までに簡単な計算機を実装するためのjsの具体的なコードを共有しています。具体的...