按自定义条件排序搜索结果

时间:2012-10-11 13:08:36

标签: mysql sql

我会尽力解释我的问题。

我有一个搜索表单,用户可以在其中选择不同的参数并输入不同的值来搜索属性。就像我有一张桌子tbl_properties

在搜索表单中,用户选择property_categoryproperty_type [租约,促销或出租],输入价格范围,no_of_bedroomslocationdistrictsproperty_area等。属性属性可以在tbl_properties或其他查找表中。编写查询不是我的问题,但我遇到的问题是,我想在搜索结果中按照以下模式对记录进行排序

  1. 首次显示结果 - 按降序排列的价格
  2. 然后显示 - 与区匹配的价格
  3. 然后显示 - 同一地区没有卧室匹配
  4. 然后显示 - 价格/卧室/物业区匹配,但在不同的地区
  5. 我只想提示如何在这些订单中对记录进行排序?

    修改

    以下是我所拥有的表格结构的简要说明

    tbl_properties
    -------------------
    
    property_id   INT
    category_id    INT
    property_name VARCHAR
    price         INT
    district_id   INT
    location       VARCHAR
    property_type  ENUM('lease','sale','rent')
    
    
    tbl_category
    -------------
    category_id   INT
    category_name VARCHAR
    
    
    tbl_districts
    -----------------
    district_id INT
    district_name VARCHAR
    
    
    tbl_property_details
    ------------------------
    detail_id      INT
    property_id     INT
    no_of_bedrooms  INT
    property_area  DECIMAL
    

    由于

2 个答案:

答案 0 :(得分:3)

order by case
    when price between @priceMin and @priceMax 
        and location = @location then 1
    when price between @priceMin and @priceMax 
        and district_id = @districtid then 2
    when no_of_bedrooms = @no_of_bedrooms 
        and districtid = @districtid then 3
    when price between @priceMin and @priceMax 
        and no_of_bedrooms = @no_of_bedrooms 
        and property_area = @property_area and districtid <> @districtid then 4
    else 5
end, price desc

答案 1 :(得分:-1)

从tbl_properties中选择property_category property_type,其中 _ __ < strong> _ _ _ _ ORDER BY _ __

所以...订购价格desc;

以下是使用http://www.sqlcourse2.com/orderby.html

的良好链接