0

我有一张桌子,看起来像:

productId  uid  version

我只想知道是否存在具有特定值的行,我不需要返回任何数据。

这个怎么做?

4

3 回答 3

3

尝试这个:

SELECT EXISTS(SELECT * FROM tablename WHERE productId=210)
于 2013-07-22T04:58:44.677 回答
1

一个简单的是;

SELECT EXISTS (
  SELECT uid FROM my_table 
  WHERE product_id = <product id to check for>
    AND uid        = <uid to check for>
    AND version    = <version to check for>
) does_exist;

一个用于测试的 SQLfiddle

如果该行存在则返回 1,如果不存在则返回 0。

您也可以使用COUNT;

SELECT COUNT(*) how_many_exist
FROM my_table 
WHERE product_id = <product id to check for>
  AND uid        = <uid to check for>
  AND version    = <version to check for>

...但这很可能会更慢,因为EXISTS只需要找到一行即可返回 1,而COUNT需要查找所有匹配的行(即使只存在一个)来计算它们。

于 2013-07-22T04:52:39.487 回答
0
SELECT COUNT(*) FROM product_table where productId  =2

如果结果 > 0,则 id 为 2 的产品存在,否则不存在

于 2013-07-22T04:50:26.833 回答