次のようなテーブルがあります。
productId uid version
特定の値を持つ行が存在するかどうかを知りたいだけです。返されるデータは必要ありません。
これを行う方法?
次のようなテーブルがあります。
productId uid version
特定の値を持つ行が存在するかどうかを知りたいだけです。返されるデータは必要ありません。
これを行う方法?
これを試して:
SELECT EXISTS(SELECT * FROM tablename WHERE productId=210)
簡単なものは次のとおりです。
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;
行が存在する場合は 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
必要があるため、これはおそらく遅くなります。
SELECT COUNT(*) FROM product_table where productId =2
結果が > 0 の場合、ID 2 の製品が存在します。それ以外の場合は存在しません