MySQLは文字列の連結、インターセプション、置換、位置検索操作を実装しています

MySQLは文字列の連結、インターセプション、置換、位置検索操作を実装しています

MySQL 文字列の連結、インターセプト、置換、および検索位置。

よく使用される文字列関数:

関数例示する
CONCAT(s1,s2,...)接続パラメータによって生成された文字列、連結される 1 つ以上の内容を返します。いずれかが NULL の場合、戻り値は NULL になります。
CONCAT_WS(x,s1,s2,...)複数の文字列を連結し、各文字列の間に x を挿入した文字列を返します。
SUBSTRING(s,n,len)、MID(s,n,len) 2 つの関数は同じ効果があり、文字列 s から n 番目の文字から始まり、長さ len の文字列を返します。
左(s,n)、右(s,n)前者は文字列 s の左端から n 文字を返します。後者は文字列 s の右端から n 文字を返します。
INSERT(s1,x,len,s2)位置 x から始まる部分文字列を文字列 s2 の len 文字に置き換えた文字列 s1 を返します。
置換(s,s1,s2)文字列 s 内の文字列 s1 のすべての出現を文字列 s2 に置き換える文字列を返します。
LOCATE(str1,str)、POSITION(str1 IN str)、INSTR(str,str1) 3 つの関数は同じ機能を持ち、文字列 str 内の部分文字列 str1 の開始位置 (n 番目の文字から始まる) を返します。
フィールド(s,s1,s2,...)文字列 s に一致する最初の出現位置を返します。

1. 文字列の連結

1.1 CONCAT(s1,s2,...)関数

接続パラメータによって生成された文字列、連結される 1 つ以上の内容を返します。いずれかが NULL の場合、戻り値は NULL になります。

SELECT CONCAT('現在の時刻:',NOW()); -- 出力結果: 現在の時刻: 2019-01-17 11:27:58

1.2 CONCAT_WS(x,s1,s2,...) 関数

複数の文字列を連結し、各文字列の間に x を挿入した文字列を返します。

SELECT CONCAT_WS(';','pan_junbiao's blog','KevinPan','pan_junbiao'); -- 出力: pan_junbiao's blog;KevinPan;pan_junbiao

2. 文字列の傍受

2.1 SUBSTRING(s,n,len) および MID(s,n,len) 関数

2 つの関数は同じ効果があり、文字列 s から n 番目の文字から始まり、長さ len の文字列を返します。

SELECT SUBSTRING('Hello, welcome to pan_junbiao's blog',8,14); -- 出力結果: pan_junbiao's blogSELECT MID('Hello, welcome to pan_junbiao's blog',8,14); -- 出力結果: pan_junbiao's blog

2.2 LEFT(s,n)、RIGHT(s,n)関数

前者は文字列 s の左端から n 文字を返します。後者は文字列 s の右端から n 文字を返します。

SELECT LEFT('Hello, welcome to pan_junbiao's blog',7); -- 出力結果: Hello, welcome to SELECT RIGHT('Hello, welcome to pan_junbiao's blog',14); -- 出力結果: pan_junbiao's blog

3. 文字列の置換

3.1 INSERT(s1,x,len,s2)関数

位置 x から始まる部分文字列を文字列 s2 の len 文字に置き換えた文字列 s1 を返します。

SELECT INSERT('Hello, welcome to A Biao's blog',8,2,'pan_junbiao'); -- 出力: Hello, welcome to pan_junbiao's blog

3.2 REPLACE(s,s1,s2)関数

文字列 s 内の文字列 s1 のすべての出現を文字列 s2 に置き換える文字列を返します。

SELECT REPLACE('Hello, welcome to A Biao's blog', 'A Biao', 'pan_junbiao'); -- 出力: Hello, welcome to pan_junbiao's blog

4. 文字列クエリの位置

4.1 LOCATE(str1,str)、POSITION(str1 IN str)、INSTR(str,str1)関数

3 つの関数は同じ機能を持ち、文字列 str 内の部分文字列 str1 の開始位置 (n 番目の文字から始まる) を返します。

SELECT LOCATE('pan_junbiao','こんにちは、pan_junbiao のブログへようこそ'); -- 出力: 8
SELECT POSITION('pan_junbiao' IN 'こんにちは、pan_junbiao のブログへようこそ'); -- 出力: 8
SELECT INSTR('こんにちは、pan_junbiao のブログへようこそ','pan_junbiao'); -- 出力: 8

4.2 FIELD(s,s1,s2,...)関数

文字列 s の最初の一致の位置を返します。

SELECT FIELD('pan_junbiao','pan_junbiao's blog','KevinPan','阿标','pan_junbiao'); -- 出力: 4

補足: mysql 文字列の位置を見つける instr() および LOCATE() 文字列検索関数

INSTR(文字列、部分文字列)

文字列 str 内の部分文字列が最初に出現する位置を返します。これは、引数の順序が逆になっていることを除いて、LOCATE() の 2 つの引数形式と同じです。

mysql> INSTR('foobarbar', 'bar') を選択します。
    -> 4
mysql> INSTR('xbar', 'foobar') を選択します。
    -> 0

LOCATE(substr,str)、LOCATE(substr,str,pos)

最初の構文は、文字列 str 内の部分文字列 substr の最初の出現を返します。 2 番目の構文は、位置 pos から始まる文字列 str 内の部分文字列 substr の最初の出現を返します。 substr が str に含まれていない場合、戻り値は 0 になります。

mysql> SELECT LOCATE('bar', 'foobarbar');
    -> 4
mysql> SELECT LOCATE('xbar', 'foobar');
    -> 0
mysql> SELECT LOCATE('bar', 'foobarbar',5);
    -> 7

この関数はマルチバイト文字をサポートし、引数の少なくとも 1 つがバイナリ文字列である場合にのみ大文字と小文字が区別されます。

POSITION(substr IN str)

文字列 str 内の部分文字列 substr が最初に出現する位置を返します。部分文字列 substr が str に存在しない場合、戻り値は 0 になります。

mysql> SELECT POSITION('bar', 'foobarbar');
-> 4
mysql> SELECT POSITION('xbar', 'foobar');
-> 0

効率テスト

`o_soft` から * を選択 WHERE LOCATE('d200',tid2)>0

MySQL は空の結果セット (ゼロ行) を返します。 (クエリには 0.0050 秒かかりました)

`o_soft` から * を選択 WHERE INSTR('d200',tid2)>0

上記は私の個人的な経験です。参考になれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。間違いや不備な点がありましたら、遠慮なくご指摘ください。

以下もご興味があるかもしれません:
  • Mysql 文字列の傍受と指定された文字列内のデータの取得
  • MySql カンマ連結文字列クエリの 2 つの方法
  • MySQLは文字列関数のSQL文をインターセプトします

<<:  CSSセレクタを使用してラベルスタイルを設定するサンプルコード

>>:  Vueはデジタル千単位区切り形式をグローバルに実装します

推薦する

親要素に対する CSS 子要素の配置の実装

解決親要素に position:relative を追加します。子要素に position:abso...

反応ルーティングでパラメータを渡すいくつかの方法についての簡単な説明

最初のパラメータ渡し方法は、動的ルーティングパラメータ渡しです。リンクのパス属性を設定することで、ル...

MySQL で null 値と空文字 ('') を区別する

日常の開発では、データベースの追加、削除、変更、クエリが一般的に行われるため、Mysql で NUL...

CSSで検索ボックスを非表示にする機能を実装します(アニメーション順方向と逆方向のシーケンス)

上部のメニュー バーに検索ボックスを配置するのは一般的なシナリオですが、検索機能がそれほど頻繁に使用...

Tomcatサーバーのセキュリティ設定方法

Tomcat は、Java Community Process を通じて Sun が開発した、広く使...

MySQLインデックスに関する詳細を共有する

数日前、同僚からMySQLのインデックスについて質問を受けました。大体わかっているのですが、まだ練習...

よく使われるJavaScript配列メソッド

目次1. フィルター() 2. 各() 3. いくつか() 4. すべて() 5. 減らす() 6....

MySQL 5.7.21 winx64 グリーンバージョンのインストールと設定方法のグラフィックチュートリアル

この記事ではMySQL 5.7.21のインストールと設定方法を記録しています。具体的な内容は以下のと...

選択にスタイルを追加するための純粋な CSS (スクリプトなし) 実装

通常は ul、li を介して選択のデフォルト スタイルを変更して、実現をシミュレートします。このよう...

MySQL 5.7.20 zip インストール チュートリアル

MySQL 5.7.20 zipインストール、具体的な内容は次のとおりです(1)圧縮パッケージを解凍...

Vueはアンカー配置機能を実装します

この記事では、アンカー配置を実装するためのVueの具体的なコードを例として紹介します。具体的な内容は...

docker を使用して minio と java sdk を構築するプロセスの詳細な説明

目次1minioはシンプル2 Dockerビルド minio 2.1 単一ノード2.2 マルチノード...

Vueにおける仮想DOMの理解のまとめ

これは本質的に、ビュー インターフェース構造を記述するために使用される共通の js オブジェクトです...

win10 での mysql5.7.21 の詳細なインストール手順

この記事では、MySQL 5.7.21のインストールとインストール中に発生した問題を参考までに紹介し...

Vue Element フロントエンドアプリケーション開発: Vuex での API ストアビューの使用

目次概要1. フロントエンドとバックエンドの分離とWeb APIの優先ルート設計2. Axiosネッ...