序文注: テストデータベースのバージョンは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. 背景Netplan は、Ubuntu システムのネットワーク設定を簡単に管理および構成できるよ...
ページング効果は、参考までにvueプロジェクトに実装されています。具体的な内容は次のとおりです。 1...
最近、機能拡張の要件を受け取りました。ただし、新しい要件で参照されているデータインターフェイスは、X...
この記事では、WeChatアプレットの具体的なコードを共有し、簡単なチャットルームを実装します。具体...
ソケットオプション機能機能: ソケットファイル記述子の属性の読み取りと設定に使用されるメソッド #i...
以下にリストされているすべてのブログはオリジナルであり、独自にデザインされています。これらは、他者が...
MySQL はインストール時に自動的に mysql という名前のデータベースを作成します。mysql...
いくつかの簡単な Linux コマンドを使用すると、ストレージまたは電子メールの添付ファイルのサイズ...
ポーテナーの紹介Portainer は、ステータス表示パネル、アプリケーション テンプレートの迅速な...
目次1. Typescriptの紹介2. 設定ファイル webpack 設定3. プロジェクトに.t...
インターネットは人々の生活にますます欠かせないものになってきていると思います。 Ajax や fle...
純粋なCSS3で蝶が羽ばたく様子を再現。まずはその効果をご覧ください どうですか?効果はかなりいいで...
ngx_lua_module は、lua パーサーを nginx に埋め込み、lua 言語で記述され...
1. HTMLタグは常に閉じる前のページのソース コードでは、次のような記述がよく見られます。 &l...
導入Xiao A がコードを書いていたところ、DBA Xiao B が突然、「急いでユーザー固有情報...