Проверьте, существует ли строка в postgresql
Я видел много сообщений об этом в SO. Но я не мог получить ответ.
Я хочу, чтобы запрос проверял, существует ли определенная строка в таблице. Если он существует, он должен вернуть мне строку true и остановить поиск там сам, а если не вернуть false.
Ответы
Ответ 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
;