我从数据库中提取了一个实习列表。有些已升级,使其有权显示在列表顶部。目前升级后的节目按升序排列,然后是常规节目,使用以下内容:
SELECT Company FROM bandb Where BusinessState = '$State' AND BusinessCity = '$City' AND (Active = 'Web' OR Active = 'Name') ORDER by featured asc, Company asc
我需要更改它,以便升级的旅馆以随机顺序显示,其次是其他旅馆按升序排列,但我很难过。有什么想法吗?
答案 0 :(得分: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
。然后你对那个随机字段进行排序。非功能性公司最终排在最后,特色公司以随机数排序。