0

データベース内の 10 個の異なるアイテムを一覧表示するクエリがあります。

このクエリ内に、上記の項目 1 ~ 10 のそれぞれについて、別のテーブルで関連するサブカテゴリを検索するネストされたクエリがあります。

したがって、最終的に 11 個のクエリが発生します。1 つは主要なカテゴリを反復処理し、残りの 10 はそれらのカテゴリごとにクエリと出力を行います。

問題は、集合的に、重複した値を出力することです。

10 個のクエリで実行されるDISTINCTため、使用できません。出力が独自のクエリ内で異なる場合でも、グループ全体では区別されないためです。

では、このようなマルチクエリリストが一意であることを確認するにはどうすればよいですか? jsまたはphpには、そのようなことができる組み込み関数がありますか?

4

2 に答える 2

2

あなたのコードは実際にはスケーラブルではありません。すでに多数のクエリに到達しています。100 個のアイテムがあると想像してみてください...

代わりに、元のクエリ内にサブクエリを作成することを検討してください。これにより、1 つのクエリしか実行できず、MySQL エンジンはすべてのクランチ作業をより簡単に行うことができます (実際に何を求めているかを認識しているため)。

JOIN可能であれば sを使用し、インデックスに細心の注意を払ってください。いくつかのコードを見ずにこれ以上助けることはできませんが、DISTINCT突然再び使用できるようになるため、これは役立つはずです.

于 2012-10-28T00:47:50.027 に答える
0

実際、コードを作り直さずに解決する方法を見つけました。リセットされない増分 $array[$i] を使用して、すべてのクエリからの出力全体を同じ配列に入れ、次に php の array_unique を使用しました。:)。PHP は非常に用途の広い言語です。私の謙虚な(noob)意見。

于 2012-10-29T03:35:16.940 に答える