序文注: テストデータベースのバージョンは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 をよろしくお願いいたします。 |
Linux システム時間には 2 種類あります。 (1)暦上の時刻。値は、指定された時刻、1970 ...
目次1. インストールと導入2. PDFファイルをパッケージ化してエクスポートする方法構成の詳細PD...
目次序文質問オンラインソリューション序文この記事の内容は私がこの業界に入ったときのメモを元にしている...
目次1. JDKをインストールする2. Jenkinsをインストールする3. Jenkinsの設定を...
選択肢がある場合は、UTF-8を使用することをお勧めします。実際、Windows システム自体のプロ...
目次1. 概要2. ログインインターセプションを実装するためのルーティングナビゲーションガード1. ...
目次rc.local メソッドchkconfig メソッドrc.local メソッド1 まず自動的に...
Web ページの外観はレイアウトに大きく左右されます。ページ内に長い段落のテキストがある場合、通常は...
ページの DIV+CSS レイアウトを行う際、IE6 で画像要素 img の下に余分なスペースができ...
目次1. テレポート1.1 テレポートの紹介1.2 テレポートの使用1.3 プレビュー効果2. サス...
WML (ワイヤレス マークアップ言語)。これは HTML から派生したマークアップ言語ですが、W...
方法1: SET PASSWORDコマンドを使用する mysql> username@loca...
これまでのブログ投稿では、HTML 5 ではあまり使われていないが注目すべき API やヒントに焦点...
Linux で FTP サーバーを設定するためのチュートリアルを参照してください https://w...
問題の説明ESXI で Windows にワークステーションをインストールした後、内部の仮想マシンは...