Postgres LIKE %% синтаксические ошибки - PullRequest
0 голосов
/ 04 сентября 2018

Я пытался провести сравнение LIKE в postgres, но неоднократно получал сообщение об ошибке, сообщающее, что столбец "%@firstname%" не существует.

Я должен уточнить, этот запрос выполняется в функции, "@firstname" - это параметр, передаваемый в функцию.

Соответствующий раздел запроса находится ниже:

WHERE u."firstname" LIKE "%@firstname%"

Мне не нужно точное сравнение, поэтому я пытаюсь добавить %% к запросу. Это работает прекрасно без них для точных запросов. Всякий раз, когда я добавляю%, он предполагает, что они являются частью имени переменной и впоследствии не может его найти.

Я также пробовал следующее:

  1. '%"@firstname"%', что приводит к возвращению пустого массива, даже если он должен был соответствовать

  2. "%'@firstname'%", что приводит к error: column "%'@filter'%" does not exist

  3. %"@firstname"%, что приводит к error: column "%'@filter'%" does not exist

1 Ответ

0 голосов
/ 04 сентября 2018

Если "@firstname" - параметр, вам нужно что-то вроде:

WHERE u.firstname LIKE concat('%', "@firstname", '%');
...