gpt4 book ai didi

sql - 有效地确定是否有任何行满足 Postgres 中的谓词

转载 作者:行者123 更新时间:2023-11-29 12:33:00 24 4
gpt4 key购买 nike

我想查询数据库是否存在满足给定谓词的一行或多行。但是,我对这样的一行、两行或一百万行之间的区别不感兴趣——只是如果有“零”或“一个或多个”。而且我不希望 Postgres 浪费时间生成我不需要的精确计数。

在 DB2 中,我会这样做:

SELECT 1 FROM SYSIBM.SYSDUMMY1 WHERE EXISTS 
(SELECT 1 FROM REAL_TABLE WHERE COLUMN = 'VALUE')

然后检查查询返回的是零行还是一行。

但是 Postgres 没有可用的虚拟表,那么最好的选择是什么?

如果我自己创建一个单行虚拟表并使用它代替 SYSIBM.SYSDUMMY1,查询优化器是否足够聪明,不会在运行查询时实际读取该表,否则“做正确的事”?

最佳答案

PostgreSQL 没有虚拟表,因为您不需要它。

SELECT 1 WHERE EXISTS 
(SELECT 1 FROM REAL_TABLE WHERE COLUMN = 'VALUE')

或者,如果您想要一个真/假答案:

SELECT EXISTS(SELECT 1 FROM REAL_TABLE WHERE COLUMN = 'VALUE')

关于sql - 有效地确定是否有任何行满足 Postgres 中的谓词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32554400/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com