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

TextFieldとリストメニューに基づく基準検索

    where句に何か奇妙なことがあります。

    テストする場合:(A AND B)OR(A OR B)

    A => a.establishment_name LIKE '".$search_value."'
    B => a.location_id = '".$location_search_value."'
    

    Aが真の場合、bが真である必要はありません。そして、これはあなたの3番目の例が機能していないことを説明しています。値をテストし、説明に基づいて正しいWHERE句を作成する必要があると思います。

    if($search_value != "" && $location_search_value == "") {
        $where = "a.establishment_name LIKE '".$search_value."'";
    } else if ($search_value == "" && $location_search_value != "") {
        $where = "a.location_id = '".$location_search_value."'";
    } else {
        $where = "(a.establishment_name LIKE '".$search_value."' AND a.location_id = '".$location_search_value."')";
    }
    $query = "SELECT a.*, b.location_name ".
             "FROM establishment a ".
             "JOIN location b ON a.location_id = b.location_id ".
             "WHERE ".$where; 
    


    1. SQL-IF EXISTS UPDATEELSEINSERT構文エラー

    2. listaggデータを使用可能な形式に?

    3. 空間インデックスを使用したMYSQL

    4. レコードMySQL全体のすべてのコンテンツを表示するためのPHP追加ボタン