2011-11-21 28 views
8

Şu an için sqlite3 kullanıyorum ve dolayısıyla || işlecini kullanarak birleştirme dizeleri kullanıyorum.MySQL dizeleri ||

Daha sonraki bir tarihte MySQL'e geçmek isterim ve bu nedenle kodda herhangi bir değişiklik yapılması gerekmedikçe güzel olurdu. Normalde concat()'u MySQL'de birleştirmek için kullanırdım. || da çalışıyor mu, yoksa kodumu değiştirmem mi gerekecek? Yoksa başka bir çözüm var mı?

Bu arada Ruby on Rails 3.1 kodluyorum.

cevap

21

||, MySQL'de de çalışır ancak 'u PIPES_AS_CONCAT'a ayarlamanız gerekir.

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

teşekkür ederiz, bu harika! –

+0

Bu ayrıca 'ansi' modunda çalışırken (ki kesinlikle tavsiye ederim) de eklenmiştir: http://dev.mysql.com/doc/refman/5.5/en/server-sql-mode.html#sqlmode_ansi –