Как объединить два поля в Postgresql - PullRequest
3 голосов
/ 17 апреля 2011

У меня есть 2 поля first_name и last_name, но мне нужно объединить эти поля как полное имя.

Мой код ниже

User.where('(users.first_name ILIKE ?) OR (users.last_name ILIKE ?)', "%#{search}%", "%#{search}%")

но мне нужно что-то вроде

User.where('(users.fullname ILIKE ?) OR (users.first_name ILIKE ?) OR (users.last_name ILIKE ?)', "%#{search}%", "%#{search}%", "%#{search}%")

Ответы [ 2 ]

13 голосов
/ 17 апреля 2011

объединение в Postgres как в SQLite: ||

(users.first_name || ' ' || users.last_name)

User.where('((users.first_name || ' ' || users.last_name) ILIKE ?) OR (users.first_name ILIKE ?) OR (users.last_name ILIKE ?)', "%#{search}%", "%#{search}%", "%#{search}%")
4 голосов
/ 02 августа 2012

Измените его, чтобы использовать одинарные кавычки, и он будет работать:

(users.first_name || ' ' || users.last_name)

Вместо:

(users.first_name || " " || users.last_name)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...