Может ли MySQL конкатенировать строки с ||

Я использую sqlite3 на данный момент и, следовательно, строки конкатенации, используя оператор ||.

В какой-то более поздний срок я хотел бы перейти на MySQL, и, следовательно, было бы неплохо, если бы не было никаких изменений в коде. Обычно я использовал concat() для объединения в MySQL. Работает ли ||, или мне придется изменить код? Или есть ли другое решение?

Я, кстати, кодирую Ruby on Rails 3.1.

Ответ 1

|| работает и в MySQL, но вам нужно установить sql_mode в PIPES_AS_CONCAT.

Официальный документ

Демонстрация:

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)