查询中使用字符串连接符
本文通过具体示例介绍如何在查询中使用字符串连接符。
字符串连接符
在 seekdb 下,字符串连接函数包括 CONCAT() 和 CONCAT_WS() 等。 '||' 默认是表示逻辑运算符"或",在指定 sql_mode 下,'||' 也可以当作字符串连接符使用。
示例
创建示例表并录入合适的数据。
CREATE TABLE cust (
c_id INTEGER,
c_first VARCHAR(20),
c_last VARCHAR(20),
c_credit DECIMAL(10, 2)
);
Query OK, 0 rows affected
INSERT INTO cust VALUES(101,'Ann','Smith',16.10);
1 row affected
INSERT INTO cust VALUES(102,'Madeleine','Johnson',23.00);
1 row affected
INSERT INTO cust VALUES(103,'Michael','Brown',9.05);
1 row affected
在查询中使用字符串连接符
-
使用 "||" 作为字符串连接符进行查询。
如果把变量
sql_mode值增加一个选项PIPES_AS_CONCAT,则 '||' 也会当作字符串连接符。SET SESSION sql_mode='PIPES_AS_CONCAT,STRICT_TRANS_TABLES,STRICT_ALL_TABLES';
Query OK, 0 rows affected
SELECT c_first || ' ' || c_last full_name FROM cust ORDER BY c_last LIMIT 2;
+-------------------+
| full_name |
+-------------------+
| Michael Brown |
| Madeleine Johnson |
+-------------------+
2 rows in set -
使用
CONCAT_WS函数拼接字符串。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