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 を返すために単一の行を見つけるだけでよいのに対し、一致するすべての行(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 に答える