2

MySQL(5.x)のWHEREステートメントでストアド関数の結果を使用しようとしていますが、関数でテーブルからINT変数に値を選択し、それらを返すために失敗します。これは明らかにSELECTが複数の行を返す場合は機能しません。TABLEを返そうとしましたが(TABLEはMySQLの配列を意味することを理解していました)、それも機能しませんでした。

私が次のようなことをすることができる方法はありますか?

SELECT ID FROM myTable WHERE ID IN my_function(params);

ありがとうございました。

4

1 に答える 1

1

これはできません...

まず、ストアド関数を使用して複数の結果を返すことはできません。ストアドプロシージャを使用する必要があります。

MySQLドキュメントの状態:

結果セットを返すステートメントは、ストアドプロシージャ内で使用できますが、ストアド関数内では使用できません。

次に、クエリでストアドプロシージャを使用することはできません。このSOの質問を参照してください。

クエリの最後に「HAVING...」を使用することを検討しましたか?

于 2011-08-18T12:53:13.437 に答える