Mysql 文字列の傍受と指定された文字列内のデータの取得

Mysql 文字列の傍受と指定された文字列内のデータの取得

序文: 正規表現のインターセプションに似た、MySql フィールドの文字列から特定の文字を抽出するという要件に遭遇しました。適切な方法がありませんでした。Baidu で検索した後、ようやく適切な方法を見つけました: substring_index('www.sqlstudy.com.cn', '.', -2)

特定の文字を含むデータを取得する場合は、この方法を強くお勧めします。

substring_index(input,split,index): input はインターセプトされる文字、split は区切り文字、Index は index 番目の区切り文字の左側 (インデックスが正の場合) または右側 (インデックスが負の場合) でインターセプトされる文字列です。

個人文字列を例に挙げます: 'Provider="RiskManagement" finalScore="65" RGID="100397278"' finalScore の値を取得したいとします:

-- 1-finalScore の右側の文字を取得します。 select substring_index('Provider="RiskManagement" finalScore="65" RGID="100397278"','finalScore="',-1);

-- 2- 「RGID="」の左側の文字を取得します。 select substring_index(substring_index('Provider="RiskManagement" finalScore="65" RGID="100397278"','finalScore="',-1),'" RGID="',1);

結果 1: 65" RGID="100397278"

結果2: 65

MySQL 文字列抽出関数: left()、right()、substring()、substring_index()。 mid() と substr() もあります。このうち、mid() と substr() は substring() 関数と同等です。substring() の機能は非常に強力で柔軟性があります。

1. 文字列の切り捨て: left(str, length)

mysql> 左を選択します('sqlstudy.com', 3); 
+-------------------------+ 
| 左('sqlstudy.com', 3) | 
+-------------------------+ 
| SQL | 
+-------------------------+

2. 文字列インターセプション: right(str, length)

mysql> 右を選択します('sqlstudy.com', 3); 
+--------------------------+ 
| 右('sqlstudy.com', 3) | 
+--------------------------+ 
| com | 
+--------------------------+

3. 文字列の抽出: substring(str, pos); substring(str, pos, len)

3.1 文字列の 4 番目の文字位置から開始して最後まで続けます。

mysql> サブ文字列を選択します('sqlstudy.com', 4); 
+------------------------------+ 
| サブ文字列('sqlstudy.com', 4) | 
+------------------------------+ 
| study.com | 
+------------------------------+

3.2 文字列の 4 番目の文字位置から開始し、2 文字だけを取得します。

mysql> サブ文字列を選択します('sqlstudy.com', 4, 2); 
+---------------------------------+ 
| サブ文字列('sqlstudy.com', 4, 2) | 
+---------------------------------+ 
| st | 
+---------------------------------+

3.3 文字列の 4 番目の文字位置 (逆方向に数えて) から開始し、最後まで続けます。

mysql> サブ文字列を選択します('sqlstudy.com', -4); 
+---------------------------------+ 
| サブ文字列('sqlstudy.com', -4) | 
+---------------------------------+ 
| .com | 
+---------------------------------+

3.4 文字列の 4 番目の文字位置 (逆方向に数えて) から開始し、2 文字だけを取得します。

mysql> サブ文字列を選択します('sqlstudy.com', -4, 2); 
+----------------------------------+ 
| サブ文字列('sqlstudy.com', -4, 2) | 
+----------------------------------+ 
| .c | 
+----------------------------------+

関数substring(str,pos,len)では、posは負の値になることができますが、lenは負の値になることができないことに気づきます。

4. 文字列抽出: substring_index(str,delim,count)

4.1 2 番目の「.」の前のすべての文字をインターセプトします。

mysql> substring_index('www.sqlstudy.com.cn', '.', 2) を選択します。 
+------------------------------------------------+ 
| サブ文字列インデックス('www.sqlstudy.com.cn', '.', 2) | 
+------------------------------------------------+ 
| www.sqlstudy | 
+------------------------------------------------+ 


4.2 2 番目の「.」(最後の文字) 以降のすべての文字をインターセプトします。

mysql> substring_index('www.sqlstudy.com.cn', '.', -2) を選択します。 
+-------------------------------------------------+ 
| サブ文字列インデックス('www.sqlstudy.com.cn', '.', -2) | 
+-------------------------------------------------+ 
| com.cn | 
+-------------------------------------------------+


4.3 delimパラメータで指定された値が文字列内に見つからない場合は、文字列全体が返されます。

mysql> substring_index('www.sqlstudy.com.cn', '.coc', 1) を選択します。 
+---------------------------------------------------+ 
| サブ文字列インデックス('www.sqlstudy.com.cn', '.coc', 1) | 
+---------------------------------------------------+ 
| www.sqlstudy.com.cn | 
+---------------------------------------------------+

4.4 テーブル内のフィールドの中央値(1、2、3など)を抽出する

mysql> テーブル名から substring_index(substring_index(フィールド、','、2)、','、-1) を選択します。 
+----------------------------------------------------------------+ 
| substring_index(substring_index(フィールド, ',', 2); , ',', -1)| 
+----------------------------------------------------------------+ 
| 2 | 
+----------------------------------------------------------------+

要約する

以上が、Mysql の文字列インターセプトと指定の文字列内のデータの取得についてご紹介したものです。お役に立てれば幸いです。ご質問がございましたら、メッセージを残していただければ、すぐに返信いたします。また、123WORDPRESS.COM ウェブサイトをサポートしてくださっている皆様にも感謝申し上げます。
この記事が役に立ったと思われた方は、ぜひ転載していただき、出典を明記してください。ありがとうございます!

以下もご興味があるかもしれません:
  • Mysql 文字列インターセプション関数 SUBSTRING の使用方法
  • MySQL インターセプションと文字列分割関数の使用例
  • mysqlは指定された2つの文字列間の内容を傍受します
  • MySQL インターセプト文字列関数 substring_index の使用
  • MySQLは文字列関数のSQL文をインターセプトします
  • MySQLの文字列インターセプト関連関数の概要
  • MySQL は文字列インターセプションのグラフィックチュートリアルを実装します

<<:  Flask アプリケーションの Docker デプロイ実装手順

>>:  Vueタイムラインコンポーネントの使い方

推薦する

Centos6.5 に zabbix2.4 をインストールするチュートリアル図

centos-DVD1バージョンシステムの固定IPアドレスは192.168.159.128で、cen...

Mysqlツリー再帰クエリの実装方法

序文部門テーブルなどのデータベース内のツリー構造データの場合、部門のすべての従属部門または部門のすべ...

Web ページのデザインを学ぶときに習得すべきコードは何ですか?

この記事では、Web ページ制作を学ぶ過程で習得すべきテクニックの一部を詳しく紹介します。これらの内...

Vue3.0+vite2は動的非同期コンポーネントの遅延読み込みを実装します

目次Viteプロジェクトを作成するコンポーネントの作成Viteプロジェクトを作成するパフォーマンスが...

MySQL 結合クエリの原則の知識ポイント

MySQL 結合クエリ1. 基本概念2 つのテーブルの各行をペアで水平に接続して、すべての行の結果を...

MongoDB データベースの状態を監視する Zabbix3.4 メソッド

Mongodb には db.serverStatus() コマンドがあり、これを使用して Mongo...

Linux サービスでファイアウォールを有効にする 2 つの方法

方法は2つあります: 1. サービス方法ファイアウォールのステータスを確認します。 [root@ce...

Dockerコマンドの学習を1つの記事にまとめる

目次導入ミラーリポジトリログイン引く押す検索ローカル画像管理画像rmiタグ建てる歴史保存負荷輸入コン...

Vue3スタイルのCSS変数注入の実装

目次まとめ基本的な例モチベーションデザインの詳細コンパイルの詳細採用戦略練習するヒント適切なプロパテ...

Linux のメモリ管理とアドレス指定の詳細な紹介

目次1. コンセプトメモリ管理モード住所種別分類例: 2. ページ管理x86 アーキテクチャ 32 ...

CSS セレクタのグループ化の簡単な分析

セレクタのグループ化h2 要素と段落の両方を灰色にしたいとします。これを行う最も簡単な方法は、次のス...

vue-cropper コンポーネントは画像の切り取りとアップロードを実現します

この記事では、画像の切り取りとアップロードを実装するためのvue-cropperコンポーネントの具体...

CSS -webkit-box-orient: コンパイル後に垂直プロパティが失われる

1. 原因要件は 2 行を表示することであり、余分なテキストは 3 つのドットに置き換えられるため、...

RedisとMySQLの違いを簡単に説明してください

MySQL はディスクに保存される永続的なストレージであり、取得には一定の IO が伴うことはご存じ...

デジタルテーブル特殊効果を実現するネイティブJS

この記事では、ネイティブ JS で実装されたデジタル時計エフェクトを紹介します。エフェクトは次のとお...