J'ai une table appelée utilisateur qui est fournie ci-dessous comme image. Dans le tableau donné, je veux sélectionner la valeur la plus importante dont le décalage est 1.
p>
La requête que j'ai utilisée est ci-dessous: p> de la requête ci-dessus, je m'attendais à max_value = 4 code> mais je reçois
max_value = 0 code>. S'il vous plaît aidez-moi. P> p>
3 Réponses :
simple essayez également d'éviter le ou en utilisant avec où code> clause avec
groupe par code> est suffisant dans votre scénario:
groupe par code> p>
select `offset`, max(value) as max_val
from `user`
group by `offset`
having `offset` = 1
Vous pouvez utiliser un peu d'astuce ici pour éviter d'utiliser cette requête (réponse d'Arulkumar) p> Query forte > p> peut être réécrit à la requête ci-dessous. de résultats strong> p> groupe par code>
offset = 1 code> Deux conditions ou plus, telles que
décalage dans (1, 2) code> ne peuvent pas être converti p>
| offset | value | offset | value |
| ------ | ----- | ------ | ----- |
| 1 | 4 | | |
| 2 | 4 | | |
| 3 | 4 | | |
Vérifiez que c'est la requête
SELECT * FROM user WHERE `offset` = 1 ORDER BY value DESC LIMIT 1
Que fait cette requête? Comment ça marche? pourquoi i> fonctionne-t-il? S'il vous plaît expliquer et développer votre réponse. Merci : -) code>
C'est la requête efficace, mais sous la condition que j'ai une valeur que dans l'ordre croissant !!
@UTSAVRASAD Mais vous pouvez utiliser pour sélectionner des données Cette requête ne mettra pas à jour la table.
@Martin Auteur a trouvé cette requête efficace cela vous donnera la réponse de toutes vos questions.
@Ronakchaauhan Compte tenu de certaines manipulations dans le tableau, je ne suis pas sûr que j'aurai la valeur dans l'ordre croissant et que certains cas d'Edge sont également sous lesquels la requête échouera. C'est bien, mais apporte des limitations.
Si vous n'avez besoin que d'un enregistrement de la table, cela fonctionnera à 100%. Mais je pense que vous avez posé une question très mal et n'a pas mentionné ce dont vous avez besoin exactement.
Query invalide Comme vous ne pouvez pas mélanger une colonne non agrégat avec une colonne d'agrégat sans utiliser de groupe par
Oh, je l'ai merci merci!
J'ai posté la réponse s'il vous plaît vérifier.