Как написать запрос, который включает в себя ИЛИ с условием AND в поисковом запросе ILIKE - PullRequest
0 голосов
/ 09 июля 2019

Я пытаюсь написать запрос для поиска, включающий в себя более 1 параметров, я хочу искать по этим параметрам, используя операторы «И» и «ИЛИ», и получать данные, используя ILIKE.Мой запрос: TableName.where("( first_name ILIKE ? OR last_name ILIKE ? AND concat_ws(' ', address1, address2, city, state, country) ILIKE ? )", "%"+name+"%", "%"+last_name+"%", "%"+address+"%")

1 Ответ

1 голос
/ 09 июля 2019

Я думаю, что вы хотите это:

("( (first_name ILIKE ? OR last_name ILIKE ?) AND concat_ws(' ', address1, address2, city, state, country) ILIKE ?  )", "%"+name+"%", "%"+last_name+"%", "%"+address+"%")

Я просто добавил круглые скобки вокруг условия имени, так что по сути это говорит, что «либо имя должно совпадать» И «адрес также должен совпадать»

(Примечание: было бы необычно видеть подобное состояние адреса - если есть какие-либо вводимые пользователем данные, они редко будут совпадать с точным адресом.)

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