MYSQL视图不填充空点以填充1000

MYSQL视图不填充空点以填充1000,mysql,sql,Mysql,Sql,下面的查询从过去两天提出的问题中获取热门问题。它查看一个提要表以了解最新讨论的内容,然后搜索一个标记表以查找其中哪一个最受欢迎 我只得到大约60个结果,这是伟大的,但我需要1000个结果。这意味着我需要用随机的问题填满剩下的部分 我的sql查询尝试这样做,但不会在视图的其余部分填充更多问题,这些问题不在提要表中 CREATE ALGORITHM = UNDEFINED DEFINER = `root`@`%` SQL SECURITY DEFINER VIEW `p

下面的查询从过去两天提出的问题中获取热门问题。它查看一个提要表以了解最新讨论的内容,然后搜索一个标记表以查找其中哪一个最受欢迎

我只得到大约60个结果,这是伟大的,但我需要1000个结果。这意味着我需要用随机的问题填满剩下的部分

我的sql查询尝试这样做,但不会在视图的其余部分填充更多问题,这些问题不在提要表中

CREATE 
    ALGORITHM = UNDEFINED 
    DEFINER = `root`@`%` 
    SQL SECURITY DEFINER
VIEW `popular` AS
    select 
        `q`.`name` AS `name`,
        `q`.`questionUrl` AS `questionUrl`,
        `q`.`miRating` AS `miRating`,
        `q`.`imageUrl` AS `imageUrl`,
        `q`.`foundOn` AS `foundOn`,
        `q`.`myId` AS `myId`
    from
        (`question` `q`
        join `feed` `f` ON ((`q`.`myId` = `f`.`question_id`))

        join `tag` `t` ON ((`q`.`myId` = `t`.`question_id`)))

    where
        (`t`.`name` like '%popular%')
    group by `q`.`name`
    order by (max(`f`.`timeStamp`) >= (now() - interval 1 day)) desc , (`q`.`myId` is not null) desc
    limit 0 , 1000comment

如果需要随机问题,请删除
where
子句,并将逻辑移到
order by

select 
    `q`.`name` AS `name`,
    `q`.`questionUrl` AS `questionUrl`,
    `q`.`miRating` AS `miRating`,
    `q`.`imageUrl` AS `imageUrl`,
    `q`.`foundOn` AS `foundOn`,
    `q`.`myId` AS `myId`
from
    (`question` `q`
    join `feed` `f` ON ((`q`.`myId` = `f`.`question_id`))
    join `tag` `t` ON ((`q`.`myId` = `t`.`question_id`)))
group by `q`.`name`
order by (max(`f`.`timeStamp`) >= (now() - interval 1 day)) desc ,
         max(`t`.`name` like '%popular%') desc,
         rand()
limit 0 , 1000;

您可以分别搜索
2天
其他
问题,然后
UNION
结果和
limit
输出。好吧,这不是对所有1000个问题都是随机的吗?我只需要在最初的60个问题之后返回random(因为我问题中的代码视图只有60个问题,所以在此之后我想再添加940个random)questions@waf-正如我已经说过的,有两个类似的查询,每个查询获取1000条记录。一个用于2天,另一个用于随机。创建额外的列(假设)
1
表示2天,而
0
表示随机。将两个查询合并。从这个新字段开始,用
ORDER BY
对结果设置
LIMIT 1000
,这样您的2天记录优先。