2011-11-21 5 views
8

Sto usando sqlite3 per il momento, e quindi le stringhe concatenazione utilizzando l'operatore ||.MySQL può concatenare stringhe con ||

Ad un certo momento successivo mi piacerebbe passare a MySQL, e quindi sarebbe bello se non modifiche al codice doveva essere fatta. Normalmente userei concat() per concatenare in MySQL. Anche lo || funziona o dovrò modificare il mio codice? O c'è qualche altra soluzione?

sto codifica in Ruby on Rails 3.1, tra l'altro.

risposta

21

Il || funziona anche in MySQL ma è necessario impostare sql_mode su PIPES_AS_CONCAT.

Official Doc

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

Grazie, che è perfetto! –

+0

Questo è anche incluso durante l'esecuzione in modalità 'ansi' (che è qualcosa che consiglio vivamente): http://dev.mysql.com/doc/refman/5.5/en/server-sql-mode.html#sqlmode_ansi –