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タイムラインコンポーネントの使い方

推薦する

ドラッグアンドドロップでVueユーザーインターフェースを生成する方法

目次序文1. 技術原理1.1 レイアウト1.2 コンポーネント1.3 ステータス1.4 イベント1....

node.jsミドルウェアの種類についての簡単な説明

目次概要1. アプリケーションレベルのミドルウェア2. 組み込みミドルウェア3. サードパーティミド...

MySQL インデックスの長さ制限の原理の分析

この記事は主に、MySQL インデックスの長さ制限の原理の分析を紹介します。サンプル コードを通じて...

CocosCreator 学習モジュールスクリプト

Cocos Creator モジュラースクリプトCocos Creator を使用すると、コードを複...

Vue で変数式セレクターを実装する方法

目次HTML構造の定義入力タグのバインディング属性入力タグはキーダウンイベントをリッスンしますli ...

MySQLデータベースのトランザクション分離レベルの詳細な説明

データベーストランザクション分離レベルデータベース トランザクションには、低から高まで 4 つの分離...

vue3でDOMをマウントするためのプラグインを書く際の問題について

vue2と比較して、vue3にはアプリの概念が追加され、vue3プロジェクトの作成も // メイン....

Windows Server 2016 リモート デスクトップ サービスを展開するためのクイック スタート ガイド

現在、2016サーバーは、win2008や2012よりも優れたマルチサイトhttpsサービスをサポー...

Linux システムで Tomcat のポート 80 を使用する方法

アプリケーションシナリオ多くの場合、Linux サーバーに tomcat や nginx などのソフ...

VMware 仮想マシンのインストール Linux システムのグラフィック チュートリアル

この記事では、LinuxシステムのVMwareインストールの具体的な手順を参考までに紹介します。具体...

オンラインMySQL自動増分IDが使い果たされた場合の対処方法

目次テーブル定義の自動増分 ID InnoDBシステムはrow_idを自動的に増加させるシドInno...

Javascript で関数のカリー化とデカリー化を実装する方法

関数のカリー化(黒い疑問符の顔)? ? ?カレー(黒い疑問符の顔)? ? ?これは完璧な中国語翻訳で...

MySQL エラー番号 1129 の解決方法

SQLyog が MySQL に接続する際にエラー番号 1129 が発生します: mysql エラー...