je bloque depuis quelques heures sur une requête SQL.
Dans la clause WHERE j'aimerais déterminer si un attribut varchar représente un nombre (entier base 10).
Exemple : attribut = "12" => La condition est vérifiée
attribut = "2f" => La condition n'est pas vérifié.
J'ai essayé avec LIKE en faisant : WHERE attribut LIKE '[0-9]' mais elle ne peut pas fonctionner vu que l'entier peut être représenté sur plusieurs caractères. Y a t'il un moyen de préciser le nombre de caractère impacté dans LIKE ?
Sinon, j'ai essayé l'inverse pour éviter le problème précédent mais ça ne marche pas non plus : WHERE attribut NOT LIKE '%[A-z]%'
Pouvez-vous m'aider à trouver les éléments de syntaxe qui me manque ?
Effectivement, j'acceptais la chaine vide pour des raisons propres à mon code.
Pour ceux qui souhaiterais matcher que sur des nombres non vides, vous pouvez utiliser la solution de Julp.
Déterminer si une chaine est un nombre en SQL
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
N'oubliez pas d'activer les erreurs PDO.
julp.fr ~ PHP < 8.0.0 : activer les erreurs PDO/SQL ~ PHP < 8.1.0 : activer les erreurs mysqli