ホームページ > データベース > mysql チュートリアル > 私の SQL クエリが大学フィルターを無視するのはなぜですか?どうすれば修正できますか?

私の SQL クエリが大学フィルターを無視するのはなぜですか?どうすれば修正できますか?

Patricia Arquette
リリース: 2025-01-19 10:02:09
オリジナル
978 人が閲覧しました

Why is my SQL query ignoring the university filter, and how can I fix it?

SQL クエリのトラブルシューティング: 大学フィルターの問題

この SQL クエリは「people」テーブルをターゲットにし、複数のフィルターを使用して結果を絞り込みます。 問題は、クエリが大学フィルターを通過すべきではないレコードを返すことです。これは、WHERE 句内の演算子の優先順位の問題に起因します。

元のクエリには、AND 演算子と OR 演算子の適用が間違っているという問題があります。 AND の優先順位が高いため、university='2' 条件が MATCH 操作にのみ誤ってリンクされます。 fname フィルターと lname フィルターは独立して評価されるため、意図しない結果が生じます。

この解決策には、正しい操作順序を強制するためにクエリを再構築することが含まれます。

<code class="language-sql">SELECT *
FROM people
WHERE
    university='2'
    AND (
        MATCH (lname,fname) AGAINST ('+massive' IN BOOLEAN MODE)
        OR fname LIKE '%box%'
        OR lname LIKE '%box%'
    );</code>
ログイン後にコピー

括弧を使用して fname フィルターと lname フィルターをグループ化することで、university='2' 条件が 3 つの基準すべてに適用されるようになります。 これにより、名前ベースの条件の少なくとも 1 つを満たす大学 '2' のレコードのみが出力に含まれることが保証されます。

以上が私の SQL クエリが大学フィルターを無視するのはなぜですか?どうすれば修正できますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート