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

14

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

В вашем запросе отсутствует запятая. wildplasser
Что вы пробовали? Как вы указываете строку? По rowid или значениям всех атрибутов? Это должен быть запрос или функция PL / SQL тоже приемлема? toniedzwiedz

Ваш Ответ

2   ответа
-13

Спойлер:

-- 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
        ;
То, что вы написали, является бредом даже для меня. Вы не являетесь репетитором, предоставляя намеренно запутанный пример, который работает, ноThe Daily WTF достойный. Вы можете, например, указать на документациюcase а такжеexists, поскольку это полезно только для тех, кто знает, что искать.
Он был задуман как спойлер. ОП, безусловно, домашнее задание, и не показывает никаких усилий.
Пожалуйста, обратите внимание, что ОП не показывает каких-либо усилий. Это простоgimmethecodez вопрос, на который может ответить anybode, достаточно свободно владеющий SQL (может быть даже больше методов для достижения одной и той же цели, чем только эти два ответа)
Это слишком сложно.
-1 Другие люди, кроме ОП, читают этот ответ, пытаясь решить свои похожие проблемы.
41
select
  case when exists (select true from table_name where table_column=?)
    then 'true'
    else 'false'
  end;

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

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

Похожие вопросы