Y a-t-il un moyen dans MySQL à J'ai été capable de le fumer comme ceci: P> Count (*) code> à partir d'une table où si le numéro est supérieur à
x code>, il cessera de compter là-bas? Fondamentalement, je veux seulement savoir si le nombre d'enregistrements renvoyés d'une requête est plus ou inférieur à un nombre particulier. Si c'est plus que ce numéro, je ne me soucie pas vraiment du nombre de lignes qu'il y a, si c'est moins, dites-moi le comte.
-- let x be 100
SELECT COUNT(*) FROM (
SELECT `id` FROM `myTable`
WHERE myCriteria = 1
LIMIT 100
) AS temp
3 Réponses :
SELECT * FROM WhateverTable WHERE WhateverCriteria LIMIT 100, 1 LIMIT 100, 1 returns 101th record, if there is one, or no record otherwise. You might be able to use the above query as a sub-query in EXIST clauses, if that helps.
Cela ne me va pas. Cela ne comprendra-t-il que des identifiants survenus plus de 100 fois? Si chaque identifiant est unique, bonne chance avec ça!
J'ai édité le post. "Ayant" est utilisé conjointement avec "groupe par" et "groupe par" n'est pas nécessaire dans ce cas.
Merci Salman - J'ai mis à jour mes questions pour mieux expliquer ma situation.
Je sais que je suis quelques années de retard au jeu ici, mais je voulais mentionner que c'est une excellente solution. Merci!
Je ne peux penser à rien. Cela me ressemble à ce que vous faites exactement remplit le but et SQL ne semble certainement pas sortir de sa manière de vous rendre facile pour vous de le faire plus succinctement. p>
Considérez ceci: qu'est-ce que vous essayez de faire n'a de sens dans un contexte strict d'arithmétique fixe. Mathématiquement, la réponse est de tout compter, puis de prendre le min () code> avec 100, ce qui est ce que vous êtes (pragmatiquement et avec une bonne raison) essayant d'éviter. P>
Ceci fonctionne:
select count(*) from stockinfo
Du manuel: Count (*) est optimisé pour revenir très rapidement si le SELECT RESPIENNE à partir d'une table, aucune autre colonne n'est récupérée et qu'il n'y a pas de clause d'où. Cette optimisation s'applique uniquement aux tables MyISAM uniquement, car un nombre de lignes exactes est stocké pour ce moteur de stockage et peut être consulté très rapidement.
Je crains que dans ce cas, vérifier si le nombre de comptes ()> 100 ou comptez ()> 1000 ou compter ()> 10000 ne fera aucune différence.
oui je sais, c'est pourquoi je fais la sous-requête avec la limite, je me demandais s'il y avait une meilleure façon
J'ai supprimé ma réponse lorsque j'ai vu votre édition / intention. Je suppose que votre réponse dans votre question est la plus optimale