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

推薦する

要素フォーム検証で検証プロンプトをクリアする方法

目次問題のシナリオ:解決: 1. フィールドを個別にチェックする2. フォームフィールドの下のフィー...

Ubuntu 18.04にmysql5.7をインストールする

Ubuntu 18.04では参考までにmysql 5.7をインストールします。具体的な内容は以下のと...

77.9K の GitHub リポジトリを持つ Axios プロジェクト: 学ぶ価値のあることは何でしょうか?

目次序文1. Axiosの紹介2. HTTPインターセプターの設計と実装2.1 インターセプターの紹...

Linux での NVIDIA GPU 使用状況の監視の詳細な説明

TensorFlow をディープラーニングに使うとビデオメモリ不足がよく起こるので、GPU 使用状況...

ウェブページを最適化してメモリとCPUの使用率を削減

一部の Web ページは大きく見えなくても開くのに非常に時間がかかる場合があります。一方、他の We...

SQL IDENTITY_INSERT ケーススタディ

一般的に、データ テーブル内の列を ID 列として設定すると、ID 列の表示値を手動で ID 列に挿...

ウェブページを作るときに注意すべき5つのポイント

1. 色合わせの問題<br />Web ページには 3 色以上使用しないでください。そう...

Centos8でdockerがインストールできない問題の解決方法

問題 [root@zh ~]# [root@zh ~]# [root@zh ~]# yum -y d...

Vue での親子コンポーネント通信と、sync を使用して親子コンポーネント データを同期する

目次序文子コンポーネントは親コンポーネントにデータを渡す1. 親コンポーネントから子コンポーネントに...

ボタンに醜い灰色の枠線が付いています。これを削除するにはどうすればよいですか?

ダイアログをクロージャで使用し、右上隅の向こう側に閉じるボタンがあるダイアログを描画しました。ボタン...

element-plus でオンデマンドインポートとグローバルインポートを実装する方法

目次オンデマンドインポート:グローバルインポートオンデマンドインポート:プラグインをインストールする...

Tik Tok サブスクリプション ボタンのアニメーション効果を実現する CSS

少し前にTik Tokを見ていて、フォローするときのボタンアニメーションがとても美しいと思ったのと、...

vue $setは配列コレクションオブジェクトへの値の割り当てを実装します

Vue $set 配列コレクションオブジェクトの割り当てVue カスタム配列オブジェクト コレクショ...

HTMLのタグについての簡単な説明

0. タグとは何ですか? XML/HTML コードコンテンツをクリップボードにコピー<入力 t...

Windows 10 での MySQL 8.0.16 のインストールと設定のチュートリアル

この記事では、参考までにMySQL 8.0.16のインストールと設定方法のグラフィックチュートリアル...