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

推薦する

CentOS 7.x のマスターおよびスレーブ DNS サーバーの展開

1. 準備例: 2 台のマシン: 192.168.219.146 (マスター)、192.168.21...

ページのスクロールバーを無効にするには、overflow: hiddenを使用します。

コードをコピーコードは次のとおりです。 html {オーバーフロー: 非表示; }体{オーバーフロー...

MySql のサブクエリ内のクエリ例の詳細な説明

北西を見ると私の故郷はどこにあるでしょうか。南東の満月を何度見たことがあるでしょうか。月が再びゆっく...

html オプション 無効 選択 選択 無効 オプションの例

コードをコピーコードは次のとおりです。 <選択> <オプション値="&q...

Amap を使用した React 実装例 (react-amap)

React の PC 版は Amap を使用するようにリファクタリングされました。情報を検索したと...

React+Koa によるファイルアップロードの実装例

目次背景サーバーの依存関係バックエンド構成クロスドメインバックエンド構成の静的リソースアクセスではk...

CSS3 transition-delay属性のデフォルト値が単位なしの0であり無効である問題を解決します

今日は、CSS3 の transition-delay 属性のデフォルト値 0 に単位がないのは無効...

Nginx 構成 クロスドメイン リクエスト Access-Control-Allow-Origin * 詳細な説明

序文403 クロスオリジン エラーが発生しNo 'Access-Control-Allow-...

DockerコンテナにRedisをデプロイする手順の紹介

目次1 つの Redis 設定ファイル2 Dockerコマンドの開始3 docker-compose...

MySQLクエリ最適化プロセスを理解する

目次パーサーとプリプロセッサクエリオプティマイザーMySQL クエリの最適化には、解析、前処理、最適...

Ubuntuでネットワークルーティングテーブルを表示する方法

Linux におけるルーティングとルーティング テーブルとは何ですか?ルーティングのプロセスとは、ネ...

CentOS で MySQL を完全にアンインストールする方法

この記事では、CentOSでのMySQLの完全アンインストールについて記録しています。具体的な内容は...

メンテナンス可能なJSコードの書き方を教えます

目次保守可能なコードとは何ですか?コード規約1. 読みやすさ2. 変数と関数の命名3. 透過的な変数...

jQueryはスライディングタブを実装する

この記事では、スライドタブを実装するためのjQueryの具体的なコードを参考までに紹介します。具体的...

Web インタビュー: MVC と MVVM の違いと、Vue が MVVM に完全に準拠していない理由

目次MVCとMVVMの違い前述のMVCC の概要長所と短所MVVM概要MVVM 実装者 — Vue ...