2011-11-21 24 views
8

Estoy usando sqlite3 por el momento, y por lo tanto cadenas de concatenación usando el operador ||.¿Puede MySQL concatenar cadenas con ||

En una fecha posterior, me gustaría cambiar a MySQL y, por lo tanto, sería bueno que no se tuvieran que realizar cambios en el código. Normalmente usaría concat() para concatenar en MySQL. ¿Funciona también || o tendré que modificar mi código? ¿O hay alguna otra solución?

Estoy programando en Ruby on Rails 3.1, por cierto.

Respuesta

21

El || también funciona en MySQL, pero debe establecer sql_mode en PIPES_AS_CONCAT.

Official Doc

Demostración:

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

Gracias, que es perfecto! –

+0

Esto también se incluye cuando se ejecuta en modo 'ansi' (que es algo que recomiendo encarecidamente): http://dev.mysql.com/doc/refman/5.5/en/server-sql-mode.html#sqlmode_ansi –

Cuestiones relacionadas