J'ai le tableau suivant avec certaines données: 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> 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
4 Réponses :
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
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.
Utilisez un Vous ne spécifiez pas quelle "proximité" signifie. Cela utilise la zone globale. P> P> où code>:
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
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)
Je ne sais pas pourquoi, mais "top 1" ne fonctionne pas pour moi. Je résolvai enfin le problème comme celui-ci