Sugiero mirar la documentación al respecto. https://dev. mysql.com/doc/refman/8.0/en/prepare.html
La documentación no hace referencia a ninguna otra forma de vincular variables que no sean ?
s, pero menciona que puede usar variables definidas por el usuario.
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;
Produce el mismo resultado y las variables solo se evalúan en la ejecución de la declaración, simplemente carece de la explicitud de vincular la variable a la consulta.