1. ホーム
  2. sql

[解決済み] MySQL テーブルに行が存在するかどうかをテストする最良の方法

2022-04-18 09:37:32

質問

あるテーブルに行が存在するかどうかを調べようとしています。MySQLを使用して、このようなクエリを実行する方がよいのでしょうか。

SELECT COUNT(*) AS total FROM table1 WHERE ...

を実行し、合計がゼロでないかどうかを確認します。または、このようなクエリを実行する方がよいでしょう。

SELECT * FROM table1 WHERE ... LIMIT 1

と入力し、行が返されたかどうかを確認します。

どちらのクエリでも、WHERE句はインデックスを使用しています。

どのように解決するのですか?

も試してみてください。 EXISTS :

SELECT EXISTS(SELECT * FROM table1 WHERE ...)

とあたり 文書化 を使えば SELECT を何でもいいんです。

従来、EXISTS サブクエリは SELECT * で始まっていましたが、このサブクエリでは、次のようなことが可能です。 は、SELECT 5 や SELECT column1 などで始めることができます。 MySQL はこのようなサブクエリの SELECT リストを無視するため、違いはありません。