序文注: テストデータベースのバージョンはMySQL 8.0です テストデータ: テーブルzqs(id int,str varchar(1000))を作成します。 insert into zqs(id,str) values (1,'【JD.com】abc【China Telecom】'); zqs(id,str) に値 (1,'【JD.com】abc【China Telecom】def') を挿入します。 zqs(id,str) に値 (1,'****【JD.com】abc【China Telecom】def') を挿入します。 zqs(id,str) に値 (1,'****【JD.com】abc') を挿入します。 insert into zqs(id,str) values (1,'【JD.com】abc【China Telecom】【China Unicom】'); 1. 需要SMS と同様の要件に遭遇することが多く、SMS タグ情報を抽出する必要がありますが、SMS タグが複数存在する場合があります。 この例では、タグは最大 3 つあり、次のように出力する必要があることを前提としています。 mysql> zqs から * を選択します。 ±-----±----------------------------------------------------+ | id | 文字列 | ±-----±----------------------------------------------------+ | 1 | 【JD.com】abc【中国電信】 | | 1 | 【JD.com】abc【中国電信】def | | 1 | ****【JD.com】abc【中国電信】def | | 1 | ****【JD.com】abc | | 1 | 【JD.com】abc【中国電信】【中国聯通】 | ±-----±----------------------------------------------------+ 必要な出力は次のとおりです。 ±-------------±-------------------±-------------------+ | 最初の値 | 最初の va2 | 最初の va3 | ±-------------±-------------------±-------------------+ | 【JD.com】 | 【中国電信】 | | | 【JD.com】 | 【中国電信】 | | | 【JD.com】 | 【中国電信】 | | | 【JD.com】 | | | | 【JD.com】 | 【中国電信】 | 【中国聯通】 | ±-------------±-------------------±-------------------+ 2. 解決策Oracle の文字列インターセプト関数 substr と instr は一緒に使用できますが、MySQL の instr 関数は Oracle の instr 関数よりも弱いです。 このとき、MySQLの正規表現regexp_instr関数とsubstr関数を使用する必要があります。 substr(str, を選択) regexp_instr(str,'【',1,1), regexp_instr(str,'】',1,1) - regexp_instr(str,'【',1,1) + 1 ) first_val, サブストラクチャ(str, regexp_instr(str,'【',1,2), regexp_instr(str,'】',1,2) - regexp_instr(str,'【',1,2) + 1) first_va2, サブストラクチャ(str, regexp_instr(str,'【',1,3), regexp_instr(str,'】',1,3) - regexp_instr(str,'【',1,3) + 1) first_va3 zqs から; テストログ: mysql> substr(str, を選択) -> regexp_instr(str,'【',1,1), -> regexp_instr(str,'】',1,1) - regexp_instr(str,'【',1,1) + 1 ) first_val, -> substr(str, -> regexp_instr(str,'【',1,2), -> regexp_instr(str,'】',1,2) - regexp_instr(str,'【',1,2) + 1) first_va2, -> substr(str, -> regexp_instr(str,'【',1,3), -> regexp_instr(str,'】',1,3) - regexp_instr(str,'【',1,3) + 1) first_va3 -> zqs から; +--------------+--------------------+--------------------+ | 最初の値 | 最初の va2 | 最初の va3 | +--------------+--------------------+--------------------+ | 【JD.com】 | 【中国電信】 | | | 【JD.com】 | 【中国電信】 | | | 【JD.com】 | 【中国電信】 | | | 【JD.com】 | | | | 【JD.com】 | 【中国電信】 | 【中国聯通】 | +--------------+--------------------+--------------------+ セット内の行数は 5 です (0.00 秒) 要約するこれで、MySQL で固定されていない位置から文字列要素を抽出する方法についての記事は終了です。MySQL から文字列要素を抽出する方法の詳細については、123WORDPRESS.COM の以前の記事を検索するか、次の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。 |
1. システム環境[root@localhost ホーム]# cat /etc/redhat-re...
コード <div class="test"> <div>...
目次導入リンク始めるコードを読み進めてくださいプロキシ設定傍受を要求する異なるプレフィックスを持つイ...
前回のブログ投稿では、レジストリのプライベート ウェアハウスについて説明しました。今日は、Harbo...
1. 基本構造:コードをコピーコードは次のとおりです。 <!DOCTYPE html PUBL...
この記事の例では、タイマー機能を実装するためのVueの具体的なコードを参考までに共有しています。具体...
Kubernetes チームは最近、最新バージョンの Docker でサポートされている機能を廃止...
時間フィールドは、データベースの使用時によく使用されます。よく使われるのは作成時間と更新時間です。し...
レスポンシブ レイアウト システムは、今日の一般的な CSS フレームワークではすでに非常に一般的で...
背景トランザクションについて話すとき、誰もがそれに精通している必要があります。MySQL データベー...
1. はじめにページを作成しているときに、複数列のレイアウトに遭遇することがあります。各列の内容が異...
環境Linux 3.10.0-693.el7.x86_64 Docker バージョン 18.09.0...
目次1. トリガーとは何ですか? 2. トリガーを作成するトリガーを作成するための構文は次のとおりで...
目次序文1. 問題の原因2. 解決策VueはelementUIテーブルtr thの高さと背景色を変更...
自宅のルーターが300Mの帯域幅を80Mに強制的に減らしたため、3205Uソフトルーターを購入しまし...