2017-12-04 4 views
0

私は3つのテーブルを持ち、JOINの操作をスフィンクスのAND条件の助けを借りて実行します。 mysqlで同じクエリを実行すると、25の結果が得られます(鹿は12、犬は10、烏は3)。ディアー、ドッグ、クロウは同じ列 'animal_name'の一部です。確かに、これらの3つのテーブルでは、データは膨大であり、1200を超える結果を返しますが、結果は25にすぎません。where節の条件をphpでsphinxに追加できますか?

ここで、私はちょうど上記の動物の名前のいずれかの結果を取得したいので、PHPコードで"Where animal_name = 'Deer'"のようなwhere節で追加の条件を渡したいと思います。私がこれを試してみると、where節に動物の名前を渡さずにmysqlクエリーと同じ12の結果しか得られません。

サンプルクエリは

Select UUID_SHORT() AS sphinxid, t1.animal_name, t1.column_name1, t3.column_name2 from table1 t1, table2 t2, table3 t3 
where 
t1.id = t2.id AND 
t2.id = t3.id; //want to add condition AND t1.animal_name = 'Deer' via php 

私は私のクエリはスフィンクスインデックスのために唯一の問題は、PHPコードを経由してAND条件を追加していないと問題がある正しいと思い、私を助けてください。

+0

あなたは正しいと思われるクエリを表示する必要があります。私はスフィンクスが参加する。通常、NOSQLシステムではデータを正規化しません。 (平らにしたもの) – ArtisticPhoenix

+0

参考資料編集の質問。でも、私はSphinx、mysql、phpの新人です – VVB

+0

MySqlで働いていた 'case'を使ってみてください! 私はスフィンクスを試していません。 –

答えて

0

あなたの質問に直接お答えします。 "where節の条件をphpからsphinxに追加できますか?" 「animal_name = 『鹿は』どこ」おそらく

$cl->Query('Deer', 'index_name'); 

しかし、データが巨大であり、それは1200の以上の 結果を返すだけで25の結果を与える必要があり、これらの3つのテーブルで

からであるための最も簡単な同等

おそらく、あなたのmysqlクエリでUNIONを実行したいと思います。この井戸が「1200以上の結果を返すが、25の結果しか返さない」理由があるかもしれません。

関連する問題