MySQL などのリレーショナル データベースを使用する場合、複数の列のデータを 1 つの文字列に結合するのは一般的なタスクです。このプロセスは文字列連結と呼ばれます。 MySQL では、これを実現する方法がいくつかあり、それぞれに独自のニュアンスと利点があります。
一般的なアプローチの 1 つは、演算子を使用することです。ただし、文字列の連結を表す他の多くのデータベース管理システムとは異なり、MySQL はこの記号を算術演算用に予約しています。 MySQL で文字列を連結するには、CONCAT() 関数を使用する必要があります。
説明のために、first_name と last_name という列を持つ Student テーブルがあると仮定します。これらの列を Name という名前の単一の列に連結するには、次のクエリを使用できます。
SELECT CONCAT(first_name, ' ', last_name) AS Name FROM test.student;
CONCAT() 関数は可変数の引数を受け取り、それらを単一の文字列に連結します。 first_name と last_name の間のスペース文字 (' ') は区切り文字として機能します。
代わりに、MySQL は CONCAT_WS() 関数 (区切り文字と連結) を提供します。この関数は CONCAT() の特定の形式であり、最初の引数が区切り文字として使用されます。
SELECT CONCAT_WS(' ', first_name, last_name) FROM test.student;
最後に、MySQL が || を処理するオプションを提供していることは注目に値します。演算子は、OR の同義語ではなく文字列連結演算子として使用されます。これは、PIPES_AS_CONCAT SQL モードを有効にすることで実現できます:
SET sql_mode = PIPES_AS_CONCAT;
これにより、次のようなクエリを作成できます:
SELECT first_name || last_name AS Name FROM test.student;
ただし、その影響を完全に理解することが重要です。 SQL モードを変更します。データベースの他の側面に影響を与える可能性があります。
以上がMySQL で文字列を効率的に連結するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。