1

テーブル内のデータの例

post_id|post_title|post_status

1       i         1

2       love      0

3       sof       0

私は(または)に問題があります

私はこの条件を試しています

WHERE post_status = '1' AND post_id = '1' OR post_title = 'i';
//it should return with i
// but it returned with love,sof

条件の最後に (OR) があるため、問題が発生します

条件の前の部分が無効になっています

では、ORを適切に使用するにはどうすればよいですか?

post_id と post_title の両方の列で投稿を検索したい

ノート:

post_status='1'何らかの理由で条件の最後に移動できません。開始する必要があります

4

2 に答える 2

6

で論理的にグループ化する必要があるだけです()。それ以外の場合、OR条件が true の場合post_status = 1は、一致するかどうかに関係なく、必要な条件よりも優先されます。

WHERE post_status = '1' AND (post_id = '1' OR post_title = 'i');

マルチパート句を作成するときは常に論理グループと優先順位について考える必要がありますWHEREが、特に論理を使用する場合はOR、句の残りの部分をすぐに脱線させる可能性があるためです。

于 2012-06-10T18:17:29.287 に答える
3

ANDよりも優先順位が高いORため、実質的にクエリは

WHERE (post_status = '1' AND post_id = '1') OR post_title = 'i';

そして、あなたがやろうとしているようです:

WHERE post_status = '1' AND (post_id = '1' OR post_title = 'i');

したがって、明示的な中括弧を使用するだけです

于 2012-06-10T18:18:08.240 に答える