检查值是否存在列
问题描述:
我想知道如何在查询特定表中的列中存在varchar
值时如何最大限度地提高速度。我不需要知道它在哪里,或者有多少次出现,我只想要一个true
/false
。当然,该列有一个索引。检查值是否存在列
现在,我有这样的:
SELECT exists (SELECT 1 FROM table WHERE column = <value> LIMIT 1);
答
EXISTS通常应尽快返回的子查询发现一行满足其WHERE子句。所以我认为你的查询速度可以达到你想要的速度。
我有点惊讶,LIMIT 1
似乎总是加快查询非常轻微。我没有想到。您可以通过EXPLAIN ANALYZE
查看效果。
EXPLAIN ANALYZE
SELECT exists (SELECT 1 FROM table WHERE column = <value> LIMIT 1);
+0
你能告诉我查询是如何常用于此(检查是否存在与最大速度) – Perlos
对于检查如果列名存在,看到http://stackoverflow.com/a/10636439/287948 –