我刚开始使用MySQL,所以我想知道我的数据库的最后50个条目中我只能select
只有5个随机行吗?我希望你理解我的问题。
我正在使用PDO,我现在拥有的是:
$otherChoiseRig = $bdd->query("SELECT * FROM articulos WHERE cat = '$ArtCat' ORDER BY RAND() ");
$otherChoiseRig2 = $otherChoiseRig->fetchAll(PDO::FETCH_ASSOC);
然后我使用PHP foreach循环...
谢谢
答案 0 :(得分:2)
挑战在于确定最后50个条目。假设你有一个自动增加的id,你可以这样做:
SELECT a.*
FROM (SELECT a.*
FROM articulos a
WHERE cat = '$ArtCat'
ORDER BY id DESC
LIMIT 50
) a
ORDER BY RAND()
LIMIT 5;
关键思想是获取最后50个条目的子查询,然后是获得5个随机行的最终查询。子查询需要指定如何识别最后50个。
答案 1 :(得分:0)
只需添加限制
我假设你的表中有一些日期栏,所以我们可以获得最后50个
SELECT * FROM(SELECT * FROM articulos WHERE cat =' $ ArtCat' ORDER BY created_tiem desc limit 50)t order by RAND()limit 5;
答案 2 :(得分:0)
$otherChoiseRig = $bdd->query("SELECT * FROM articulos WHERE cat = '$ArtCat' ORDER BY RAND() LIMIT 5 ");
$otherChoiseRig2 = $otherChoiseRig->fetchAll(PDO::FETCH_ASSOC);