2013-07-05 87 views
1

我有一个查询,随机选择4个基于特定县的特色属性。MySQL查询多选随机结果

如果某个特定县的特色属性超过4个,查询就会正确地拉动4个......但是当县里不足4个时......我如何将该县的属性(如果发现)然后随机包括县外的记录,这样共有4个结果显示出来?

这里是我的查询的示例......

SELECT 
    `name`, 
    `sleeps`, 
    `town`, 
    `county`, 
    `price`, 
    FLOOR(1 + RAND() * p.id) AS 'randnum' 
FROM 
    `properties_featured` AS `f` LEFT JOIN `properties` ON f.code=prop.code, 
    (SELECT MAX(t.id) - 1 AS 'id' FROM `properties_featured` AS t) AS p 
WHERE prop.status='on' AND `county`='Dorset' 
ORDER BY `randnum` LIMIT 4; 

非常感谢

回答

0

取下WHERE条款县匹配,并使它的ORDER BY一部分。

SELECT 
    `name`, 
    `sleeps`, 
    `town`, 
    `county`, 
    `price`, 
    FLOOR(1 + RAND() * p.id) AS 'randnum' 
FROM 
    `properties_featured` AS `f` LEFT JOIN `properties` ON f.code=prop.code, 
    (SELECT MAX(t.id) - 1 AS 'id' FROM `properties_featured` AS t) AS p 
WHERE prop.status='on' 
ORDER BY `county` = 'Dorset' DESC, `randnum` 
LIMIT 4; 
+0

伟大,感谢@Barmar工作正常:) –