Может ли MySQL объединять строки с || - PullRequest
9 голосов
/ 21 ноября 2011

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

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

Кстати, я пишу в Ruby on Rails 3.1.

1 Ответ

23 голосов
/ 21 ноября 2011

|| работает и в 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)
...