Подтвердить что ты не робот

Проверьте, существует ли строка в postgresql

Я видел много сообщений об этом в SO. Но я не мог получить ответ. Я хочу, чтобы запрос проверял, существует ли определенная строка в таблице. Если он существует, он должен вернуть мне строку true и остановить поиск там сам, а если не вернуть false.

4b9b3361

Ответ 1

select
  case when exists (select true from table_name where table_column=?)
    then 'true'
    else 'false'
  end;

Но было бы лучше просто возвращать значение boolean вместо строки:

select exists (select true from table_name where table_column=?);

Ответ 2

Спойлер:

-- EXPLAIN ANALYZE
WITH magic AS (
        WITH lousy AS ( SELECT * FROM one  WHERE num = -1)
        SELECT 'True'::text AS truth
        WHERE EXISTS  (SELECT * FROM lousy)
        UNION ALL
        SELECT 'False'::text AS truth
        WHERE NOT EXISTS (SELECT * FROM lousy)
        )
SELECT *
FROM magic
        ;