これに関するドキュメントを確認することをお勧めします。
このドキュメントでは、?
以外の変数をバインドする他の方法については言及していません。 sですが、ユーザー定義変数を使用できると記載されています。
SET @s = 'SELECT * FROM MY_TABLE WHERE my_column_1 = @a AND my_column_2 = @b ';
PREPARE stmt2 FROM @s;
SET @a = 54;
SET @b = 89';
EXECUTE stmt2;
同じ出力を生成し、変数はステートメントの実行時にのみ評価されます。変数をクエリにバインドする明示性が欠けているだけです。