MySQL .. Retourne '1' si un COUNT renvoie plus de 0
Je suis en train de créer de requête MySQL qui, pour l'essentiel renvoie true ou false. Je voudrais
SELECT COUNT(id)
FROM comments
WHERE comment_date >= 1306904400
AND user_id = 1
Donc, si l'utilisateur a posté dans le forum 10 fois ce mois-ci, j'aimerais qu'il revienne juste à 1, sinon, je voudrais qu'il retourne 0 pour indiquer qu'ils n'ont pas.
Est-ce possible de manière efficace dans SQL?
source d'informationauteur kimion09
Vous devez vous connecter pour publier un commentaire.
Si vous n'avez pas l'esprit spécifique à MySQL choses, alors vous pourriez utiliser
IF
:Ou MySQL booléens (qui sont de 1 pour vrai et 0 pour faux):
Si vous voulez coller à la norme SQL, puis
CAS
est votre ami:Utilisation
CASE
:Vous n'avez pas besoin de compter tous les enregistrements correspondants, il suffit de trouver s'il existe. Malheureusement, MySQL ne semble pas soutenir
IF EXISTS
que Microsoft SQL Server. Toutefois, vous pouvez utiliser une sous-sélection avecLIMIT
faux:Je sais que c'est un vieux thread, mais voici une autre façon de procéder:
SELECT COUNT(id), 1 % (1 + count(id)) as greaterThanZero
FROM comments
WHERE comment_date >= 1306904400
AND user_id = 1
peut-être:
- Je utiliser une LIMITE à faire quelque chose de similaire, et juste de l'évaluer dans mon code. Le SQL va s'arrêter après la recherche de 10 matches.
PHP demander à un minimum de 10 postes.