Closed1

MySQLでプリペアドステートメント(パラメータクエリ)の動作検証をしたい

peko858peko858

アプリケーションコードに実装するSQLはプリペアドステートメントであることが多いと思う。
そういったSQLを手元で動かして動作検証したい場合に? を一生懸命書き換えることが多かったのだが、アプリケーションコードの実行と同じようにまずプリペアドステートメントを定義して、後からパラメータを渡すことがDBクライアント上でも簡単に出来るようだったので備忘録程度に残す。

※ MySQL 5.6以上である必要がありそう

手順

プリペアドステートメントの定義

PREPARE state
FROM
	'
		SELECT
			*
		FROM
			hoge
		WHERE
			hoge.`id` IN (?, ?)'

パラメータをユーザー変数として定義

SET @p1 = 1;
SET @p2 = 2;

プリペアドステートメントの実行

EXECUTE state USING @p1, @p2;

参照

https://dev.mysql.com/doc/refman/5.6/ja/sql-syntax-prepared-statements.html

このスクラップは2022/07/22にクローズされました