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はデジタル千単位区切り形式をグローバルに実装します

推薦する

コーディングスキルを向上させるためのJavaScriptのヒント

目次1. 一意の値をフィルタリングする2. 短絡評価2.1 シナリオ例3. ブール変換4. 文字列を...

Linux のごみ箱メカニズムの実装プロセスと使用方法の詳細な説明

序文: Linux システムでの rm は元に戻せません。コマンドの設計自体に問題はありません。問題...

WeChatアプレットで画像の幅と高さを取得する方法

起源最近、私は要件 A に取り組んでいます。そこには、次のように記述される小さな機能ポイントがありま...

JDBC-idea で mysql をインポートして java jar パッケージに接続する (mac)

序文1. この記事ではMySQL 8.0バージョンを使用していますバージョン5.0と比較すると、パッ...

CSS の優先順位に関する詳細な紹介

CSS の優先順位について話す前に、CSS とは何か、CSS が何に使用されるのかを理解する必要があ...

Vue要素と多言語切り替えの詳細な説明

目次序文複数の言語を切り替えるにはどうすればいいですか? 1. vue-i18nパッケージをインスト...

Dockerカスタムネットワークコンテナ相互接続

目次序文-リンクカスタムネットワーク質問する序文前回は、 -Linkパラメータを使用してコンテナ間の...

はじめに: HTML の基本的なタグと属性の簡単な紹介

HTML はタグと属性で構成されており、これらを組み合わせてブラウザにページの表示方法を指示します。...

JavaScript はマウスのドラッグを実装して div のサイズを調整します

この記事では、マウスをドラッグしてdivのサイズを調整するJavaScriptの具体的なコードを参考...

int(3)とint(10)の値の範囲はmysqlで同じですか?

目次質問:答え:現実:知識ポイント結論は:要約する質問: MySQLフィールド、unsigned i...

HTMLタグのtarget属性の使用法

1: <a> タグを使用してページにリンクする場合、target 属性の役割は誰もが知っ...

Vue ソング プログレス バーのサンプル コード

なお、これはvue-cliで作成したプロジェクトではありません。vue.jsを参照して記述したHTM...

鏡像効果を実現する JavaScript キャンバス

この記事では、JavaScriptキャンバスでミラーイメージ効果を実現するための具体的なコードを参考...

MySQL ストアド プロシージャで case ステートメントを使用する詳細な例

この記事では、例を使用して、MySQL ストアド プロシージャでの case ステートメントの使用方...

MySQL パスワードは正しいが、ローカルにログインできない -1045

MySQLパスワードは正しいが、ローカルでログインできない -1045 ユーザー 'roo...