1

我会尽量解释我的问题。

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

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

  1. 第一个显示结果 - 按降序匹配位置的价格
  2. 然后显示 - 与该地区匹配的价格
  3. 然后显示 - 同一区的卧室数量匹配
  4. 然后显示 - 价格/卧室/物业面积匹配但在不同的地区

我只想提示如何按这些顺序对记录进行排序?

编辑

这是我所拥有的表结构的简要说明

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

谢谢

4

2 回答 2

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
于 2012-10-11T13:23:27.960 回答
-1

从 tbl_properties 中选择 property_category property_type 其中_ __ _ _ _ _由 _ __订购

所以... ORDER BY price desc;

等等

这是一个很好的使用链接http://www.sqlcourse2.com/orderby.html

于 2012-10-11T13:12:22.523 回答