【问题标题】:MySQL query for multi select of random resultsMySQL查询多选随机结果
【发布时间】:2013-07-05 19:00:56
【问题描述】:

我有一个查询,它根据特定县随机选择 4 个特色属性。

如果特定县的特色属性超过 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;

非常感谢

【问题讨论】:

    标签: php mysql sql select


    【解决方案1】:

    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;
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-05-21
      • 2010-10-18
      • 2021-12-05
      • 2011-05-30
      • 1970-01-01
      • 2018-10-04
      • 1970-01-01
      • 2018-03-13
      相关资源
      最近更新 更多