sql >> データベース >  >> RDS >> Mysql

動的に作成されたWHERE句PHP/MySQL

    where文字列を作成する代わりに、最初にwhereパーツを含む配列を作成します。

    $whereParts = array();
    foreach($aColumns as $i => $column)
    {
        <logic goes here>
        $whereParts[] = 'genre_id IN (1,3,5,6)'; // sample :)
    }
    
    $where = 'WHERE ' . implode(' OR ', $whereParts); // note the spaces around OR
    

    そうすれば、' OR 'を簡単に置き換えることができます。 ' AND 'を使用

    ユーザーがすべてのwhereパーツに対してANDとORのどちらかを選択できるようにするのは簡単ですが、個々のアイテムごとに選択できるようにする場合はそうではありません。これも論理的な問題です。ユーザーがa OR b AND cを指定した場合 、(a OR b) AND cが必要ですか? またはa OR (b AND c)




    1. postgresqlですべての結果を表示しますか?

    2. SQLユニオン順序

    3. 挿入、更新、削除後のPL / SQLトリガーで、シーケンスを使用してデータをログ表に入力します

    4. GROUP BY式ではない本当に単純なSQL - Oracle