MYSQL视图没有填满空点填充1000

时间:2013-09-15 19:30:13

标签: mysql sql

以下查询从过去2天内提出的问题中获取热门问题。它查看了一个feed表,看看最新的是什么,然后搜索一个标签表,找出哪一个很受欢迎。

我只获得了大约60个结果,这很棒,但我需要1000个结果。这意味着我需要用随机问题填补其余部分。

我的sql查询尝试执行此操作,但不填写视图的其余部分,但更多问题不在Feed表中。

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

1 个答案:

答案 0 :(得分:1)

如果您需要随机问题,请移除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;