ホームページ  >  記事  >  データベース  >  mysqlクエリのスプライシング

mysqlクエリのスプライシング

王林
王林オリジナル
2023-05-20 09:57:384189ブラウズ

MySQL クエリのスプライシング

MySQL を使用してクエリを実行する場合、複数のフィールドや複数のテーブルのフィールドをスプライスする必要がある場合がありますが、この場合、MySQL が提供する文字列スプライシング機能を使用して操作できます。一般的に使用される文字列連結関数には、CONCAT、CONCAT_WS、GROUP_CONCAT などがあります。

  1. CONCAT 関数

CONCAT 関数は、2 つ以上の文字列またはフィールドを接続するために使用されます。構文は次のとおりです:

CONCAT(string1, string2, ...)

このうち、string1、string2 ... は接続する文字列またはフィールドを表し、定数、列名、式、関数などを指定できます。たとえば、従業員の名前と役職を検索するには、次のステートメントを使用できます。

SELECT CONCAT(last_name, ' ', first_name) AS name, job_title
FROM employees

ここでの CONCAT 関数は、last_name と first_name を連結し、クエリ結果のフィールド名としてスペースで区切ります。実行結果は次のとおりです:

name job_title
Geoni Bakewell 生産マネージャー
Lemuel Marmie 出荷マネージャー
Lino Uselman エンジニア
ハニー・タニー セールスマネージャー
... ...
  1. CONCAT_WS 関数

CONCAT_WS 関数は文字列の連結にも使用されますが、CONCAT 関数とは異なり、区切り文字を指定できます。

CONCAT_WS(separator, string1, string2, ...)

このうち、separator は区切り文字を表し、任意の文字列を使用できます。string1、string2... は接続する文字列またはフィールドを表し、複数の文字列はカンマで区切られます。たとえば、従業員のフルネームと電子メール アドレスを検索するには、次のステートメントを使用できます。

SELECT CONCAT_WS(' ', first_name, last_name) AS full_name, email
FROM employees

ここでの CONCAT_WS 関数は、区切り文字としてスペースを使用し、first_name と last_name をクエリ結果のフィールド full_name として連結します。 。実行結果は次のとおりです:

#リノ・ウセルマンluselman@classicmodelcars.comハニー・タニーhtunney@classicmodelcars.com... ....
full_name email
Geoni Bakewell gbakewell@classicmodelcars.com
レミュエル・マーミー lmarmie@classicmodelcars.com
    GROUP_CONCAT 関数
GROUP_CONCAT 関数は、複数のフィールドまたはレコードを結合するために使用されます。特定のフィールドを文字列に連結する場合の構文は次のとおりです:

GROUP_CONCAT([DISTINCT] expr [,expr ...]
             [ORDER BY {unsigned_integer | col_name | expr} [ASC | DESC] [,col_name ...]]
             [SEPARATOR str_val])

ここで、expr は連結される列または式を表し、ORDER BY と SEPARATOR はそれぞれ並べ替えと区切り文字を表します (オプション)。デフォルトでは、GROUP_CONCAT 関数によって返される文字列には長さ制限があり、パラメータ group_concat_max_len を設定することで変更できることに注意してください。

たとえば、各部門のすべての従業員の名前をクエリし、それらをカンマで区切られた文字列に連結するには、次のステートメントを使用できます:

SELECT department, GROUP_CONCAT(last_name ORDER BY employee_number ASC SEPARATOR ', ') AS employee_names
FROM employees
GROUP BY department

ここでの GROUP_CONCAT 関数は、それに応じて last_name になります。 toemployee_number は順番に並べ替えられ、クエリ結果のフィールドemployee_namesとしてカンマとスペースで区切られます。実行結果は次のとおりです:

#Department#Adminマーフィー、パターソン、ボンドゥル、フェランテ、フィレッリ#顧客サービス財務ボウ、フィレッリ、パターソン、ツェン##...MySQL クエリ プロセス中に、複数のフィールドまたは複数のテーブル内のフィールドを結合する必要があることがよくあります。この関数を実装する際、MySQL は 3 つの文字列結合関数 (CONCAT、CONCAT_WS、GROUP_CONCAT) を提供しており、これらは 2 つ以上の文字列を接続する、任意の複数の文字列を接続して指定された区切り文字で区切る、および複数のフィールドを結合して 1 つの文字列に結合するために使用されます。これらの関数を使用すると、データ処理が大幅に容易になり、クエリの効率が向上します。
employee_names
##ツェン、ヴァナウフ、フォン ^^^^^^
...
概要

以上がmysqlクエリのスプライシングの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。