ホームページ > データベース > mysql チュートリアル > MySQL の IF EXISTS をストアド プロシージャやストアド関数の外で使用するにはどうすればよいですか?

MySQL の IF EXISTS をストアド プロシージャやストアド関数の外で使用するにはどうすればよいですか?

Linda Hamilton
リリース: 2024-12-11 09:14:10
オリジナル
836 人が閲覧しました

How Can I Use MySQL's IF EXISTS Outside of Stored Procedures and Functions?

MySQL の "IF EXISTS" 構文の利用

MySQL では、"IF EXISTS" 構造は、次の条件に基づいてクエリを条件付きで実行する便利な方法を提供します。テーブル内のデータの存在。ただし、ストアド プロシージャまたは関数の外でこの構文を使用すると、エラーが発生する可能性があります。

問題:

関数の外で "IF EXISTS" 制御ブロックを使用しようとすると、結果が返されます。以下にエラー:

IF EXISTS (SELECT * FROM gdata_calendars WHERE `group` = ? AND id = ?) SELECT 1 ELSE SELECT 0
ログイン後にコピー
IF ((SELECT COUNT(*) FROM gdata_calendars WHERE `group` = ? AND id = ?) > 0) SELECT 1 ELSE SELECT 0;
ログイン後にコピー

解決策:

この問題を解決するには、「IF EXISTS」句を「IF」内のサブクエリに変換する必要があります。 " 関数。その方法は次のとおりです:

SELECT IF(EXISTS(
           SELECT *
           FROM gdata_calendars
           WHERE `group` = ? AND id = ?), 1, 0)
ログイン後にコピー

あるいは、MySQL でブール値が "1" または "0" として返されるという事実を利用して、クエリを簡素化することもできます:

SELECT EXISTS(
        SELECT *
        FROM gdata_calendars
        WHERE `group` = ? AND id = ?)
ログイン後にコピー

このアプローチでは、次のことが可能になります。ストアド プロシージャまたは関数の外部のクエリ内で「IF EXISTS」機能を使用すると、データ。

以上がMySQL の IF EXISTS をストアド プロシージャやストアド関数の外で使用するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート