2011-11-21 28 views
8

Tôi đang sử dụng sqlite3 cho thời điểm này và do đó, các chuỗi ghép bằng cách sử dụng toán tử ||.MySQL có thể nối chuỗi với ||

Vào một số ngày sau đó, tôi muốn chuyển sang MySQL và do đó sẽ tốt hơn nếu không có thay đổi nào đối với mã phải được thực hiện. Tôi thường sử dụng concat() để nối vào MySQL. || có hoạt động hay không, hoặc tôi có phải sửa đổi mã của mình không? Hoặc có giải pháp nào khác không?

Tôi đang mã hóa trong Ruby on Rails 3.1, nhân tiện.

Trả lời

21

|| cũng hoạt động trong MySQL nhưng bạn cần đặt sql_mode thành 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

Cảm ơn bạn, đó là hoàn hảo! –

+0

Điều này cũng được bao gồm khi chạy trong chế độ 'ansi' (đây là điều tôi khuyên dùng): http://dev.mysql.com/doc/refman/5.5/en/server-sql-mode.html#sqlmode_ansi –

Các vấn đề liên quan