序文注: テストデータベースのバージョンは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 をよろしくお願いいたします。 |
通常、私たちが構築する Docker イメージはサイズが大きく、多くのディスク領域を占有します。コン...
なお、この記事では、単に 20.04 ソースに変更する方法を説明するのではなく、20.04 に基づい...
問題 [root@zh ~]# [root@zh ~]# [root@zh ~]# yum -y d...
1. コンテナを作成して実行するdocker run -it --rm centos:latest ...
昨晩、面接の質問を見ていたら、CSS スタイルの優先順位について特に明確に説明していない人が何人かい...
目次主キー制約一意の主キー非 Null 制約デフォルトの制約外部キー制約1NF 2NF 3NFデータ...
目次Zabbix カスタム監視 nginx ステータス1. ステータスインターフェースを開く2. 監...
方法1:フロート:右さらに、フローティングにするとレイアウトがよりコンパクトになります(隙間がなくな...
目次背景解決新しい質問高度な背景シャトル ボックスが大量のデータを処理すると、レンダリングされる D...
目次事前分析とは何ですか?変数と関数の準備の違いvar 変数の繰り返し宣言変数と関数の昇格の優先順位...
Linux では、cat、more、less の各コマンドを使用してファイルの内容を表示できます。c...
データベースコマンド仕様すべてのデータベース オブジェクト名には小文字を使用し、アンダースコアで区切...
1. es起動コマンド: docker run -itd -e TAKE_FILE_OWNERSHI...
この記事では、Excelテーブルプラグインを導入するVueの具体的なコードを参考までに共有します。具...
序文1. デバウンス: 高頻度イベントがトリガーされた後、関数は n 秒以内に 1 回だけ実行されま...