sql >> Database >  >> RDS >> Mysql

Wordpress mysql-groep door | bestellen door

uw ID's zijn incrementeel. gebruik dat.

select ...
from 
.....
where id post_in 
(select max(post_id) from table group by category)

als je weet hoeveel categorieën er zijn, kun je het nog beter doen met

where post id in 
(select post_id from table where category=1 order by time desc limit 1
union
select post_id from table where category=2 order by time desc limit 1
union
select post_id from table where category=3 order by time desc limit 1
union
select post_id from table where category=4 order by time desc limit 1)

of je zou parameters kunnen gebruiken die je een perfect resultaat geven, maar een erg langzame zoekopdracht

select * from
(select 
@rn:=if(@prv=category_id, @rn+1, 1) as rId,
@prv:=category_id as category_id,
timestamp,
other columns
from (select category_id, timestamp, other columns from ... )a
join
(select @prv:=0, @rn:=0)tmp
order by 
category_id , timestamp desc) a
where rid<=1


  1. PCI-compliance voor MySQL en MariaDB met ClusterControl

  2. probeer bin log directory te veranderen:mysql-bin.index niet gevonden (Errcode:13)

  3. niet-geïnitialiseerde constante Mysql2::Client::SECURE_CONNECTION

  4. mysql binaire vergelijking gebruikt geen index