0

我正在从数据库中提取旅馆列表。有些已升级,使其有权显示在列表顶部。目前升级后的节目按升序排列,然后是常规节目,使用以下内容:

SELECT Company FROM bandb Where BusinessState = '$State' AND BusinessCity = '$City' AND (Active = 'Web' OR Active = 'Name') ORDER by featured asc, Company asc

我需要更改它,以便升级后的旅馆以随机顺序显示,其余旅馆按升序显示,但我很难过。有任何想法吗?

4

1 回答 1

4

尝试

SELECT Company, IF(featured, rand(), 0) AS rand_position
FROM bandb
Where BusinessState = '$State' AND BusinessCity = '$City' AND (Active = 'Web' OR Active = 'Name')
ORDER by featured asc, rand_position DESC, Company asc

如果公司的“特色”,则为其职位生成一个随机数,否则他们得到一个0. 然后你对那个随机字段进行排序。非特色公司最终排在底部,而特色公司则按该随机数排序。

于 2013-08-16T16:00:45.397 回答