代码之家  ›  专栏  ›  技术社区  ›  sdot257

在mysql中创建动态where子句

  •  0
  • sdot257  · 技术社区  · 15 年前

    是否可以根据用户选择的内容动态修改Where条件? 我正在创建一个有几个下拉列表的窗体。例如,给定下面的查询,客户可以根据价格、居住区和财产类型(即公寓、联排别墅、单户住宅等)搜索数据库中的财产。但是,也可以选择返回任何类型的属性,但要考虑其他条件。根据用户是否希望返回所有属性类型,是否有动态修改WHERE子句的方法?

    SELECT a.id, property_id, price, name as section_name, baths, beds 
    FROM 
        properties a, subdivision b
    WHERE 
        a.subdivision = b.id and
        property_type = $property_type
    ORDER by id"
    
    2 回复  |  直到 15 年前
        1
  •  0
  •   BenV Langley    15 年前

    只需动态构建查询。我不是一个PHP编码人员,所以这可能在语法上不正确,但它应该是这样的:

    $query = <<<QUERY
    SELECT a.id, property_id, price, name as section_name, baths, beds 
    FROM 
        properties a, subdivision b
    WHERE 
        a.subdivision = b.id
    QUERY;
    
    if ($property_type)
    {
       $query = $query . " and property_type = $property_type ";
    }
    
    $query = $query . " order by id";
    
    $result = mysql_query($query);
    
        2
  •  0
  •   Ondra Žižka David Lilljegren    15 年前

    如果你用Java编写代码,看看iBATS,它对动态查询有很好的支持。

    http://ibatis.apache.org/