从尽可能多样的表格中获取结果

时间:2017-02-09 09:53:09

标签: php mysql sql

我想根据一些搜索条件从表中检索行。我得到的结果必须符合这些标准,并应另外提供尽可能多样化的数据样本。具有相同搜索条件的查询应始终返回相同的样本。因此在查询中使用RAND()是没有解决方案的。结果用于在PHP驱动的网站上显示。

示例

我有一张有住宿的桌子,例如酒店,住宿加早餐或露营地。对于每个住宿,还有额外的信息,如评级,预算,城市和地区。所以表格基本上是这样的:

| id | name   | type    | rating | budget | city         | region  |
|  1 | A Name | Hotel   |      2 |      2 | New York     | East    |
|  2 | B Name | B&B     |      3 |      2 | New York     | East    |
|  3 | C Name | Hotel   |      4 |      3 | New York     | East    |
|  4 | A Name | Hotel   |      3 |      4 | Chicago      | Central |
|  5 | D Name | B&B     |      4 |      3 | Chicago      | Central |
|  6 | E Name | Hotel   |      2 |      2 | Omaha        | Central |
|  7 | F Name | Hotel   |      5 |      4 | Omaha        | Central |
|  8 | G Name | Camping |      2 |      4 | Yosemite     | West    |

我现在需要一个查询,例如从region='Central'包含尽可能多的城市,尽可能多的住宿类型,便宜的住宿以及昂贵的住宿等等。我不需要一个数学上完美的解决方案,只需要一致的东西。

创意1

我可以多次查询表,使用几个不同的where子句并混合结果。但是多次查询是Web应用程序的一大缺陷。

创意2

我可以在插入数据时引入一个由随机值填充的附加列random,然后执行order by random。这个解决方案的缺点是随机是我想要完成的一个糟糕的启发式。

0 个答案:

没有答案