Par défaut, parent_id
= 0. Je veux sélectionner tous les enregistrements avec parent_id
= 0 et seuls les derniers avec parent_id
> 0.MySQL: group by et instruction IF
J'ai essayé, mais il n'a pas travail:
SELECT * FROM `articles`
IF `parent_id` > 0 THEN
GROUP BY `parent_id`
HAVING COUNT(`parent_id`) >= 1
END;
ORDER BY `time` DESC
Je veux dire que s'il y a quelques enregistrements avec parent_id = 2, un seul d'entre eux devrait être de retour. En outre, s'il existe un certain nombre d'enregistrements avec parent_id = 5, un seul d'entre eux est renvoyé. En d'autres termes, il ne devrait pas y avoir plus d'un enregistrement de chaque parent_id en dehors de ceux ayant parent_id = 0.
Quelle pourrait être la solution?
Qu'entendez-vous par "les derniers"? Voulez-vous dire les derniers entrés dans la base de données? – eykanal
Vous devez définir "last" lorsque vous dites "seulement les derniers avec parent_id> 0". Alors quelqu'un peut répondre. – MJB
Que voulez-vous dire par «derniers»? Des articles qui n'ont aucun autre article faisant référence à lui en tant que parent? –