2010-11-26 9 views
2

現在、12の一致するレコードを検索するために、サブクエリを使用して1つの複雑なクエリを実行するPHPコードがあります。 12個未満のレコードが返された場合、コードは、最初のクエリによって以前に取得されたレコードに追加する、わずかに変更されたWHERE句を持つ同じクエリの2番目のバージョンを実行します。総計12レコードがアセンブルされるまで、変更されたバージョンのクエリーを実行し続けます。連続したMySQLサブクエリを条件付きで実行できますか?

私は、UNIONで複数のクエリ(現在は5つあります)を組み合わせることができますが、ユニオン内の最初のクエリが12個のレコードを返すことに成功してもクエリのすべてが実行されることがわかります。各クエリは複雑なので、私はリソースを無駄にしたくありません。 (あるいは、私はそれについて間違っていますか?LIMITに達すると、MySQLはサブクエリの実行を止めることを知っていますか?)

私は現在PHPで何をしているのですか?たとえば、5つのサブクエリを持つクエリを作成するにはどうしたらいいですか?前のサブクエリで必要な数が生成されない場合にのみ、連続するサブクエリを処理しますか?

+1

これはストアドプロシージャではありませんか? –

答えて

1

このチェックを非常に簡単に行うサーバー上にstored procedureを作成することができます。

+0

@Ólafur:ありがとう。 –

+0

ようこそ。 –