[解決済み] MySQLの "IF EXISTS "の使い方
2022-03-04 23:27:44
質問
以下は、動作させたいが、エラーメッセージを返す2つのステートメントです。
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;
クエスチョンマークがあるのは、PHPのPDOでパラメトリックなプリペアドステートメントを使用しているためです。しかし、私は手動でデータを使ってこれを実行しようとしましたが、本当にうまくいきません。
それぞれうまくいかない理由が知りたいところですが、うまくいくのであれば、最初のクエリを使いたいと思います。
解決方法は?
関数の外側でIFコントロールブロックを使用することはできません。 そのため、両方のクエリに影響があります。
IF関数の中でEXISTS句をサブクエリにする。
SELECT IF( EXISTS(
SELECT *
FROM gdata_calendars
WHERE `group` = ? AND id = ?), 1, 0)
実際には、ブーリアンは1または0として返されます。
SELECT EXISTS(
SELECT *
FROM gdata_calendars
WHERE `group` = ? AND id = ?)
関連
-
[解決済み】autoカラムは1つしか存在できない
-
[解決済み] MySQLを使用したパーセンタイル値の計算
-
[解決済み] mysql 拡張は非推奨で、将来的に削除されます: 代わりに mysqli か PDO を使ってください [重複] 。
-
[解決済み] JDBC経由でMySQLにUTF-8を挿入しようとすると、"不正な文字列値 "と表示される?
-
[解決済み] whereステートメントによるmysqlの一括更新
-
[解決済み] MySQLテーブルへの挿入または存在する場合の更新
-
[解決済み] MySQLで'insert if not exists'を行うにはどうしたらいいですか?
-
[解決済み] MySQLのDESCRIBE [table]に相当するSQLiteはありますか?
-
[解決済み】MySQL:カラムがNULLの場合の行の選択
-
[解決済み] プリペアドステートメントで "like "ワイルドカードを使用する
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】エラーコード1292 - 不正なDOUBLE値の切り捨て - Mysql
-
[解決済み】MySQLユーザーDBにパスワードカラムがない - OSXへのMySQLインストール
-
[解決済み】MAMPのmysqlサーバーが起動しない。mysqlのプロセスが起動していない
-
[解決済み】mysqld_safe UNIX ソケットファイル用のディレクトリ '/var/run/mysqld' が存在しません。
-
[解決済み】「docker container run」は最低1つの引数を必要とする
-
[解決済み】MySQLで日付を比較する
-
[解決済み] MySQLのforeachループ
-
[解決済み] MySQLを使用したパーセンタイル値の計算
-
[解決済み] このMySQLエラー Incorrect column specifier for column COLUMN NAMEを回避するにはどうしたらよいですか?
-
[解決済み] SQL エラー - テーブルの定義が正しくありません; auto カラムは 1 つしか存在できません。