У меня есть таблица с целым столбцом. Он имеет 12 записей с номерами от 1000 до 1012. Помните, что это ints.Postgres SQL - разные результаты запроса LIKE с использованием OR vs ||
Этот запрос возвращает, как и ожидалось, 12 Результаты:
select count(*) from proposals where qd_number::text like '%10%'
, как делает это:
SELECT COUNT(*) FROM "proposals" WHERE (lower(first_name) LIKE '%10%' OR qd_number::text LIKE '%10%')
, но этот запрос возвращает 2 записи:
SELECT COUNT(*) FROM "proposals" WHERE (lower(first_name) || ' ' || qd_number::text LIKE '%10%')
, который предполагает использование | | в конкатенации, где выражения не эквивалентны использованию OR. Это правильно или я пропустил что-то еще здесь?
Где [в руководстве] (https://www.postgresql.org/docs/current/static/index.html) вы нашли утверждение, что '||' эквивалентно 'OR'? –
Где, в моем вопросе, я упоминал, что в руководстве утверждалось, что? – rmcsharry
"* подразумевает, что использование || не эквивалентно использованию OR .. *" звучит так же, как если бы вы ожидали, что '||' будет 'OR' –