本記事では、具体的な例を通して、クエリ内で文字列連結演算子を使用する方法を紹介します。
文字列連結演算子
OceanBaseデータベースのMySQLモードで使用される文字列結合関数には、CONCAT()やCONCAT_WS()などが含まれます。 '||' はデフォルトで論理演算子「または」を表します。指定された sql_mode で、'||' は文字列連結演算子として使用することもできます。
例
サンプルテーブルを作成し、適切なデータを挿入します。
obclient> CREATE TABLE cust (
c_id INTEGER,
c_first VARCHAR(20),
c_last VARCHAR(20),
c_credit DECIMAL(10, 2)
);
Query OK, 0 rows affected
obclient> INSERT INTO cust VALUES(101,'Ann','Smith',16.10);
1 row affected
obclient> INSERT INTO cust VALUES(102,'Madeleine','Johnson',23.00);
1 row affected
obclient> INSERT INTO cust VALUES(103,'Michael','Brown',9.05);
1 row affected
クエリでの文字列連結演算子の使用
使用 "||" を文字列結合演算子としてクエリを実行します。
変数
sql_modeの値にオプションPIPES_AS_CONCATを追加すると、'||' も文字列連結演算子とみなされます。obclient> SET SESSION sql_mode='PIPES_AS_CONCAT,STRICT_TRANS_TABLES,STRICT_ALL_TABLES'; Query OK, 0 rows affected obclient> SELECT c_first || ' ' || c_last full_name FROM cust ORDER BY c_last LIMIT 2; +-------------------+ | full_name | +-------------------+ | Michael Brown | | Madeleine Johnson | +-------------------+ 2 rows in setCONCAT_WS関数を使用して文字列を結合します。obclient> SELECT CONCAT_WS(' ', c_first, c_last) full_name FROM cust ORDER BY c_last LIMIT 2; +-------------------+ | full_name | +-------------------+ | Michael Brown | | Madeleine Johnson | +-------------------+ 2 rows in set