2

パラメータとしてMySQLクエリに比較演算子を渡す方法はありますか?

このクエリがあるとしましょう

SELECT * FROM `table1` WHERE `column1` > @p

そして代わりに、条件次第で>合格したいです。を使用できますが、クエリをパラメータ化する必要があります。<=string.format()

また、演算子が 1 つだけ異なる限り、事前定義されたクエリを使用したくありません。

4

4 に答える 4

2

これを試して:

SET @MyQuery := CONCAT("SELECT * FROM table1 WHERE",@P);
PREPARE stmt1 FROM @MyQuery;
EXECUTE stmt1;
DEALLOCATE PREPARE stmt1;

@P の場合:

SET @P:= "> 1" OR SET @P:="=1" or other condition you need to put it
于 2012-12-11T12:32:19.000 に答える
2

MySQL の準備済みステートメントは、変数のバインド値のみをサポートします。クエリ文字列の任意の部分の置換 (テーブル名であっても) はサポートされていません。つまり、SQL をクライアント上で動的に構築する必要があります。

于 2012-12-11T11:24:48.680 に答える