2011-11-21 3 views
8

私は現時点ではsqlite3を使用しています。したがって、||演算子を使用して連結文字列を使用しています。MySQLは文字列を||に連結できますか?

後で私はMySQLに移行したいので、コードを変更しなければいいとは限りません。私は通常、concat()を使用してMySQLで連結します。 ||も機能しますか?またはコードを変更する必要がありますか?それとも他の解決策がありますか?

私はRuby on Rails 3.1でコーディングしています。

答えて

21

||も同様ですが、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 –