2011-11-21 64 views
8

我正在使用sqlite3,因此使用||运算符连接字符串。MySQL可以使用||连接字符串

在稍后的日子我想转移到MySQL,因此如果不需要更改代码就会很好。我通常使用concat()在MySQL中连接。 ||是否也可以工作,或者我将不得不修改我的代码?或者还有其他解决方案吗?顺便说一下,我在Ruby on Rails 3.1中编写代码。

回答

21

||也适用于MySQL,但您需要将sql_mode设置为PIPES_AS_CONCAT

Official Doc

演示:

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) 
+3

谢谢你,这是完美的! –

+0

这也包括在'ansi'模式下运行(这是我强烈推荐的):http://dev.mysql.com/doc/refman/5.5/en/server-sql-mode.html#sqlmode_ansi –