MySQL能使用||操作符连接字符串吗?

17

目前我正在使用sqlite3,因此需要使用||运算符来连接字符串。

未来我想转移到MySQL,希望不必更改代码。在MySQL中,我通常使用concat()来连接字符串。那么||也能用吗?还是说我需要修改代码?或者有其他解决方案吗?

顺便说一下,我是在Ruby on Rails 3.1中编码的。

1个回答

32

|| 在MySQL中同样适用,但是需要设置 sql_modePIPES_AS_CONCAT

官方文档

Demo:

mysql> select c from tmp;
+------+
| c    |
+------+
| foo  |
| bar  |
+------+
2 rows in set (0.00 sec)

mysql> select c||' hi' from tmp;
+----------+
| c||' hi' |
+----------+
|        0 |
|        0 |
+----------+
2 rows in set, 2 warnings (0.00 sec)

mysql> set sql_mode=PIPES_AS_CONCAT;
Query OK, 0 rows affected (0.00 sec)

mysql> select c||' hi' from tmp;
+----------+
| c||' hi' |
+----------+
| foo hi   |
| bar hi   |
+----------+
2 rows in set (0.00 sec)

当在 ansi 模式下运行时(这是我强烈推荐的),也包括此内容:http://dev.mysql.com/doc/refman/5.5/en/server-sql-mode.html#sqlmode_ansi - user330315
先前的 ANSI 模式评论中有一个失效的链接,请使用 https://dev.mysql.com/doc/refman/8.0/en/compatibility.html。 - Bret Weinraub

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接