poemwiki / poe

4 stars 0 forks source link

优化随机获取诗歌的方法 #22

Closed star8ks closed 1 year ago

star8ks commented 1 year ago

将原有的 order by rand() 随机获取诗歌的方法改为

(
  SELECT *
  FROM `poem`
    INNER JOIN (
      SELECT CEIL(
          RAND() * (
            SELECT MAX(id)
            FROM `poem`
          )
        ) AS id
    ) AS rand ON `poem`.`id` >= `rand`.`id`
  WHERE `poem`.`deleted_at` IS NULL
  ORDER BY `poem`.`id` ASC
  LIMIT 1
)
UNION(...)