0

動的クエリ文字列を作成していますが、OR条件演算子を追加する方法に問題があります。

AND演算子にとっては、次のように簡単です。

$base_query = "SELECT * FROM `tropical_fruits` WHERE 1 "

次に、別のクエリを追加するために、次のようにします。

$query_1 = "AND `colour` = $fruit_colour;
$final_query = $base_query . $query_1;

しかし、OR演算子を追加するにはどうすればよいですか?

たとえば、単純にORを追加すると、次のようになります。

$query_1 = "OR `colour` = $fruit_colour;

...クエリは正しい結果を生成しなくなりました(つまり、クエリはテーブル内のすべてのレコードを取得します)。

だから問題は...

ユーザーが2つのOR条件を送信できることを念頭に置いて、ANDおよび/またはOR条件のいずれかを追加するのに十分な柔軟性を持たせるために、基本クエリはどうあるべきか

この質問が明確でない場合は申し訳ありません...私はそれを説明しようとするのに苦労しています!! ;-)

主なシンは、検索クエリを受け入れて結果を返す関数を書いていることです。検索関数は、次のようなクエリを受け入れることができる必要があります。

AND WHERE =
 そしてどこが好き
 またはWHERE=
 またはどこのように

基本的に、上記のクエリを次のような基本クエリに追加する必要があります。

$ base_query ='SELECT *FROM`'。$table_name。'` WHERE 1'; 

前もって感謝します!

4

2 に答える 2

3

SELECT * FROM Persons WHERE LastName='Svendson'AND (FirstName='Tove' OR FirstName='Ola')

于 2013-01-30T12:31:43.480 に答える
0

「OR」の横にある条件は、常にオプションです。基本クエリでは、「where」条件により、テーブル内のすべてのドキュメントが許可されます。それでも、選択クエリの結果を次のように制限したい場合は、

$query_1 = " AND (`colour` = $fruit_colour OR 'type'=$some_type)";

括弧と条件演算子を組み合わせて使用​​すると、結果を制限できます。

そして、これらの演算子の実行優先度を確認してください。

于 2013-01-30T12:34:48.683 に答える