MySQLでよく使われる文字列関数トップ10の詳細な説明

MySQLでよく使われる文字列関数トップ10の詳細な説明

マイグレーション

こんにちは、みんな!技術の話ばかりで髪は切らないトニーです。

データベース関数は、何らかの機能を持ち、0 個以上の入力値を受け取り、出力値を返すことができるモジュールです。 MySQL は、データの処理と分析のための多くのシステム関数を提供します。この記事では、よく使用される 10 個の文字列関数とその他の関連関数を紹介します。

連結()

CONCAT(str1,str2,…))関数は、複数の文字列を連結した後の文字列を返すために使用されます。次に例を示します。

SELECT CONCAT('MySQL', '文字列', '関数') AS str;
文字列
--------------+
MySQL 文字列関数 |

この関数のいずれかのパラメータが NULL の場合、返される結果は NULL になります。例えば:

SELECT CONCAT('MySQL', NULL, 'function') AS str;
str|
---+
   |

文字列定数の場合は、直接連結することもできます。例えば:

SELECT 'MySQL' '文字列' '関数' AS str;
文字列
--------------+
MySQL 文字列関数 |

上記の方法は、フィールド値を接続するのではなく、文字列定数を接続するためにのみ使用できます。

📝SQL モード PIPES_AS_CONCAT が有効になっている場合は、Oracle や PostgreSQL と同様に、MySQL の論理 OR 演算子 (||) を使用して文字列を連結することもできます。

CONCAT(str1,str2,…)) 関数に加えて、 CONCAT_WS(separator,str1,str2,…))関数は、指定された区切り文字セパレータを使用して複数の文字列を連結します。セパレータが NULL の場合、NULL が返されます。例えば:

CONCAT_WS('-', 'MySQL', NULL, '文字列') を str1 として選択します。
       CONCAT_WS(NULL, 'MySQL', '文字列') を str2 として指定します。
文字列1 |文字列2|
-----------+----+
MySQL 文字列 | |

より低い()

LOWER(str)LCASE(str)関数は、文字列を小文字に変換するために使用されます。例:

SELECT LOWER('MySQL 文字列関数') AS str1, LCASE('MySQL 文字列関数') AS str2;
文字列1 |文字列2 |
--------------+--------------+
mysql 文字列関数 |mysql 文字列関数 |

MySQL の大文字と小文字の変換関数はバイナリ文字列 (BINARY、VARBINARY、BLOB) をサポートしていないため、処理前に非バイナリ文字列に変換できます。例えば:

SELECT LOWER(BINARY 'MySQL文字列関数') AS str1,
       LOWER(CONVERT(BINARY 'MySQL 文字列関数' USING utf8mb4)) AS str2;
文字列1 |文字列2 |
-------------------+-------------+
MySQL 文字列関数 |

アッパー()

UPPER(str)UCASE(str)関数は、文字列を大文字に変換するために使用されます。例:

SELECT UPPER('MySQL 文字列関数') AS str1, UCASE('MySQL 文字列関数') AS str2;
文字列1 |文字列2 |
--------------+--------------+
MYSQL 文字列関数 |MYSQL 文字列関数 |

長さ()

LENGTH(str)OCTET_LENGTH(str)関数は、文字列のバイト長を返すために使用されます。次に例を示します。

SELECT LENGTH('MySQL 文字列関数') AS len1, OCTET_LENGTH('MySQL 文字列関数') AS len2;
長さ1|長さ2|
----+----+
  20| 20|

utf8mb4 エンコーディングでは、中国語の文字は 3 バイトを占めます。

さらに、 CHAR_LENGTH(str)関数とCHARACTER_LENGTH(str)関数は、文字列の文字長、つまり文字数を返すために使用されます。例えば:

SELECT CHAR_LENGTH('MySQL 文字列関数') AS len1, CHARACTER_LENGTH('MySQL 文字列関数') AS len2;
長さ1|長さ2|
----+----+
  10| 10|

BIT_LENGTH(str)関数は、文字列のビット長 (ビット数) を返すために使用されます。例:

SELECT BIT_LENGTH('MySQL 文字列関数') AS len;
レン|
---+
160|

1 バイトには 8 ビットが含まれます。

部分文字列()

SUBSTRING(str,pos)SUBSTRING(str FROM pos)SUBSTRING(str,pos,len) 、およびSUBSTRING(str FROM pos FOR len)関数はすべて、指定された位置 pos から始まる部分文字列を返すために使用できます。len は返される部分文字列の長さを示します。pos が 0 の場合、空の文字列が返されます。例えば:

SELECT SUBSTRING('MySQL文字列関数', -2) AS str1,
       SUBSTRING('MySQL 文字列関数', -5, 3) AS str2;
文字列1 |文字列2 |
------+------+
関数|文字列|

位置パラメータ pos は負の数にすることができ、その場合、返される部分文字列は文字列の右側の posth 文字から始まります。例えば:

SELECT LEFT('MySQL文字列関数',5) AS str1,
       RIGHT('MySQL 文字列関数',5) AS str2;
文字列1 |文字列2 |
-----+---------+
MySQL|文字列関数|

さらに、 SUBSTR()関数とMID()関数は SUBSTRING() 関数の同義語であり、上記の 4 つの形式もサポートします。

LEFT(str,len)関数は文字列 str の左側から len 文字を返します。RIGHT RIGHT(str,len)関数は文字列 str の右側から len 文字を返します。例えば:

SELECT LEFT('MySQL文字列関数',5) AS str1,
       RIGHT('MySQL 文字列関数',5) AS str2;
文字列1 |文字列2 |
-----+---------+
MySQL|文字列関数|

SUBSTRING_INDEX(str,delim,count)関数は、count 番目の区切り文字 delim の前の部分文字列を返します。 count が正の数の場合、count は左から開始し、左側にあるすべての文字を返します。count が負の数の場合、count は右から開始し、右側にあるすべての文字を返します。例えば:

SELECT SUBSTRING_INDEX('张三;李四;王五', ';', 2) AS str1,
       SUBSTRING_INDEX('张三;李四;王五', ';', -2) AS str2;
文字列1 |文字列2 |
--------+--------+
張三; 李四; 王武|

トリム()

TRIM([remstr FROM] str)関数は、文字列 str の両側にあるすべての remstr 文字列を削除した後、部分文字列を返すために使用されます。remstr のデフォルト値はスペースです。例えば:

SELECT TRIM('MySQL文字列関数') AS str1,
       TRIM('-' FROM '--MySQL 文字列関数--') AS str2;
文字列1 |文字列2 |
--------------+--------------+
MySQL 文字列関数 |MySQL 文字列関数 |

TRIM([{BOTH | LEADING | TRAILING} [remstr] FROM] str)関数は、文字列 str の両側/左側/右側にあるすべての remstr 文字列を削除した後、部分文字列を返すために使用されます。デフォルトでは、両側 (BOTH) が削除され、remstr はデフォルトでスペースになります。例えば:

SELECT TRIM(LEADING ' ' FROM 'MySQL 文字列関数') AS str1,
       TRIM(末尾の '-' を '--MySQL 文字列関数--' から str2 に置き換える)
文字列1 |文字列2 |
----------------+----------------+
MySQL 文字列関数 |--MySQL 文字列関数 |

LPAD()/RPAD()

LPAD(str,len,padstr)関数は、文字列 str の左側が長さが len になるまで padstr で埋められることを示します。RPAD RPAD(str,len,padstr)関数は、文字列 str の右側が長さが len になるまで padstr で埋められることを示します。例えば:

LPAD(123, 6, '0') を str1 として選択し、LPAD(123, 2, '0') を str2 として選択します。
       RPAD(123, 6, '0') を str1 として、RPAD(123, 2, '0') を str1 として;
文字列1 |文字列2|文字列1 |文字列1|
------+----+------+----+
000123|12 |123000|12 |

文字列 str の長さが len より大きい場合、文字列を右から切り捨てることと同じになります。

さらに、 REPEAT(str,count)関数は、文字列 str を count 回コピーし、結果を返すために使用されます。例えば:

REPEAT('🔥', 5) を str として選択します。
文字列
----------+
🔥🔥🔥🔥🔥|

INSTR()

INSTR(str,substr)関数は、文字列 str 内の部分文字列 substr が最初に出現するインデックス位置を返すために使用され、部分文字列が見つからない場合は 0 を返します。例えば:

INSTR('MySQL 文字列関数', '文字列') AS index1 を選択し、
       INSTR('MySQL文字列関数', '日付') AS index2,
       INSTR('MySQL文字列関数', '') AS index3,
       INSTR('MySQL 文字列関数', null) AS index4;
インデックス1|インデックス2|インデックス3|インデックス4|
------+------+------+------+
     6| 0| 1| |

さらに、 LOCATE(substr,str)関数を使用して、文字列 str 内の部分文字列 substr が最初に出現するインデックス位置を返すこともできます。INSTR(str,substr) 関数との唯一の違いは、パラメータの順序が逆になっていることです。

LOCATE(substr,str,pos)関数は、位置 pos から始まる文字列 str 内の部分文字列 substr が最初に出現するインデックス位置を返します。次に例を示します。

SELECT LOCATE('S','MySQL Server', 5) AS ind;
インド|
---+
  7|

FIELD(str,str1,str2,str3,…) 関数は、後続の文字列リスト内で文字列 str が出現する位置を返します。見つからない場合は 0 を返します。例えば:

SELECT FIELD('Li Si', 'Zhang San', 'Li Si', 'Wang Wu') AS ind;
インド|
---+
  2|

FIND_IN_SET(str,strlist) 関数は、リスト文字列 strlist 内で文字列 str が出現する位置を返します。strlist は、カンマで区切られた N 個の部分文字列で構成されます。例えば:

SELECT FIND_IN_SET('Li Si', 'Zhang San, Li Si, Wang Wu') AS ind;
インド|
---+
  2|

交換する()

REPLACE(str,from_str,to_str)関数は、文字列 str 内のすべての from_str を to_str に置き換え、置き換えられた文字列を返すために使用されます。例えば:

SELECT REPLACE('MySQL 文字列関数', '文字列', '日付') AS str1,
       REPLACE('MySQL 文字列関数', '文字列', '') AS str2;
文字列1 |文字列2 |
------------+----------+
MySQL 日付関数 |MySQL 関数 |

さらに、 INSERT(str,pos,len,newstr)関数は、文字列strの指定された位置posの後に部分文字列newstrを挿入し、後続のlen文字を置き換えるために使用されます。例えば:

SELECT INSERT('MySQL 文字列関数', 6, 3, '日付') AS str;
文字列
------------+
MySQL 日付関数 |

逆行する()

REVERSE(str)関数は、文字列 str 内の文字の順序を逆にするために使用されます。例えば:

SELECT REVERSE('上海の水道水は海から来ている')='上海の水道水は海から来ている' AS "Palindrome";
回文|
----+
   1|

MySQL について詳しく知りたい場合は、この記事を参照してください。

これで、MySQL でよく使用される文字列関数のトップ 10 に関するこの記事は終了です。MySQL 文字列関数に関するより関連性の高いコンテンツについては、123WORDPRESS.COM の以前の記事を検索するか、次の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM を応援していただければ幸いです。

以下もご興味があるかもしれません:
  • MySQL の concat 関数 (接続文字列) の使用方法の詳細な説明
  • MySQL インターセプションと文字列分割関数の使用例
  • MySQL 文字列関数の詳細な説明 (推奨)
  • MySQL インターセプト文字列関数 substring_index の使用
  • Mysql 文字列処理関数の詳細な紹介と概要
  • mysql 文字列の長さを取得する関数 (CHAR_LENGTH)

<<:  Unicode 署名 BOM の詳細な説明

>>:  Vue補間式とv-textディレクティブの違い

推薦する

webpackのモバイル適応ソリューションの概要

目次レムフォルクスワーゲンサードパーティのUIフレームワークに適応する結論モバイル開発における最も一...

mysqlは時間を自動的に追加し、時間を自動的に追加および更新する操作を実装します

時間フィールドは、データベースの使用時によく使用されます。よく使われるのは作成時間と更新時間です。し...

CocosCreatorのホットアップデートの包括的な説明

目次序文ホットチェンジとはCocos Hot アップデートの概要マニフェストプロジェクトリソースとゲ...

MySQLの高性能最適化スキルの概要

データベースコマンド仕様すべてのデータベース オブジェクト名には小文字を使用し、アンダースコアで区切...

トランザクション分離レベルのMySQLケース分析

目次1. 理論シリアル化可能繰り返し読み取りコミットされた読み取りコミットされていない読み取り2. ...

Windows 10 無料インストール版の MySQL インストールと設定のチュートリアル

ネットでいろいろ検索してみたところ、Linux システム向けではなく、現在の新しいバージョンと一致し...

JavaScriptを使って動的にテーブルを生成するケースの詳しい説明

目次序文実装のアイデア実装コード成果を達成する序文これは、テーブルを動的に追加する例です。[追加] ...

ニューススタイルのウェブサイトデザイン例25選

bmi ボイジャーピッチフォークアルスター食料品店チャウ真/斜めポスタこれは偽のDIYですクリエイテ...

MySQL 結合クエリの原則の知識ポイント

MySQL 結合クエリ1. 基本概念2 つのテーブルの各行をペアで水平に接続して、すべての行の結果を...

Windows Server 2016 で Flash を有効にする方法

最近、VMware Horizo​​n を導入してテストしましたが、そのコンソールにはデフォルトで ...

Linux 論理ボリューム管理 (LVM) の使用法の概要

ディスク領域の管理は、システム管理者にとって重要な日常的なタスクです。ディスク領域が使い果たされると...

JavaScript プロトタイプのデータ共有とメソッド共有の実装を調べる

データ共有プロトタイプにはどのようなデータを書き込む必要がありますか?共有する必要があるデータはプロ...

HTML 選択オプションの基本的な理解と使用

JavaScript での HTML (選択オプション) の詳細な説明1. 基本的な理解:コードをコ...

IISMonitor を使用して Web ページを監視し、IIS を自動的に再起動します。

目次1. ツールの紹介2. ワークフロー3. 操作インターフェースとパラメータ設定(1)監視と再起動...

シームレスなカルーセルを実現するjQueryプラグイン

シームレス カルーセルは非常に一般的なエフェクトであり、ロジックを理解すれば非常に簡単です。効果は以...