0
votes

Comment puis-je sélectionner la valeur la plus proche de SQL, mais uniquement lorsque cette valeur est plus grande?

J'ai le tableau suivant avec certaines données: xxx pré>

Je souhaite sélectionner la valeur la plus proche de la longueur et de la hauteur, mais elle doit être plus grande que la valeur que j'indique. Par exemple, si j'écris dans l'entrée: p> xxx pré>

J'ai essayé avec ceci (par exemple pour le premier cas), mais je reçois une erreur de syntaxe: P >

SELECT TOP 1 * FROM `elements` ORDER BY length-20 AND height-68


0 commentaires

4 Réponses :


2
votes

Utilisez le où code> clause de retourner uniquement des lignes avec des valeurs "plus grandes".

SELECT *
FROM `elements`
where Length >= 20 and height >= 68
ORDER BY length + height
LIMIT 1


2 commentaires

Cela ne fonctionne pas pour moi. J'utilise phpmyadmin et je reçois une erreur de syntaxe et je ne sais pas pourquoi. De plus, lorsque j'exécute l'instruction, il est ajouté à la fin: 'Limite 0, 25'. Si je n'écris pas 'top 1', cela fonctionne mais cela revient beaucoup de lignes, mais quand j'écris 'top 1', j'obtiens cette erreur de syntaxe


Maintenant MySQL Syntaxe.



1
votes

Utilisez un : xxx

Vous ne spécifiez pas quelle "proximité" signifie. Cela utilise la zone globale.


1 commentaires

Cela ne fonctionne pas pour moi. J'utilise phpmyadmin et je reçois une erreur de syntaxe et je ne sais pas pourquoi. De plus, lorsque j'exécute l'instruction, il est ajouté à la fin: 'Limite 0, 25'. Si je n'écris pas 'top 1', cela fonctionne mais cela revient beaucoup de lignes, mais quand j'écris 'top 1', j'obtiens cette erreur de syntaxe



0
votes

une version lorsque la longueur code> est deux fois importante comme hauteur code>, par exemple.

SELECT TOP 1 * 
FROM myTable
where Length >= 20 and height >= 68
ORDER BY 2*(length-20) + (height-68)


0 commentaires

0
votes

Je ne sais pas pourquoi, mais "top 1" ne fonctionne pas pour moi. Je résolvai enfin le problème comme celui-ci xxx


0 commentaires