bonjour,
je cherche l'équivalent de Isnumeric() et de nz() sous MySQL
Apres des recherche sur le site et le forum je n'ai pas trouver de reponses (ou alors j'ai mal cherché) c'est pourquoi je tourne vers vous.
bonjour,
je cherche l'équivalent de Isnumeric() et de nz() sous MySQL
Apres des recherche sur le site et le forum je n'ai pas trouver de reponses (ou alors j'ai mal cherché) c'est pourquoi je tourne vers vous.
Bonjour,
je ne peux que repondre a ta question pour savoir si le champs est null
pour le numerique je pense que d'autres auront la reponse. Desole de ne t'aider qu'a moitie
Code : Sélectionner tout - Visualiser dans une fenêtre à part select mon_champs from ma_table where mon_champs is null
"Ce besoin de remords qui précède le Mal, que dis-je ! qui le crée..." E. CIORAN
Merci, c'est deja beaucoup.
En fait je me suis mal exprimé.
Je souhaiterais faire la verification dans un IF (isnumeric(champs1/nz(champs2)), ..., ...)
voila en gros ce que je voudrais faire.
Is numeric renvoi true si s'en est un est nz permet de verifier si c'est pas null pour la division par 0
c'est dans Mysql que tu fais ton "if" ? C'est pas plutot dans ta page php ou un autre language?
Tu souhaites faire ce test dans quel but , car je voudrais t'aider mais je ne comprend pas trop ce que tu veux faire
Peux tu etre plus precis...
en fait lors de l'execution de la requete je veux verifier si les donnees que je vais récupérer sont bien des numerics car la personne qui a fait la base croit avoir fait des erreurs dans les champs et donc il ne veut pas que cela s'affiche si la donnee n'est pas un numeric.
Ca parait encore pas tres claire ^^.
Enfin, il existe bien la fonction IF dans mysql [FONT=Courier New]IF(expr1,expr2,expr3)[/FONT]
qui s'utilise de cette maniere
SELECT IF(1>2,2,3); si l'expr1 est "true" alors je renvois l'expr2 sion je renvois l'expr3
A part ca je veux donc vérifier si le champs que je selectionne est bien un numeric. De plus je veux savoir si ce numeric n'est pas diviser par 0
Okai je ne connaisais pas ces expression ej suis toujours passé par le code pour faire mes testes mais pour tester si ta valeur est null j'ai toruvé cette expression pour mysql
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 IFNULL(expr1,expr2) Si expr1 n'est pas NULL, IFNULL() retourne expr1, sinon expr2. IFNULL() retourne un nombre ou une chaîne, en fonction du contexte dans lequel il est utilisé. mysql> select IFNULL(1,0); -> 1
en esperant que cela puisse t'aider...
merci, je pense que je vais essayer avec ca parce que je n'arrive pas a trouver d'equivalent a nz() en MySQL.
sinon pour le numeric je laisse ca en stand by et je verrai ca a la fin parce que la j'avance plus.^^
je laisse le topic sur non resolu si il y en a qui peuvent m'aider
je sais pas si tu t'es rendu sur le site de MySql mais va voir il ya des choses interessantes je n'ai pas trouvé exactment pour la chaine de caractère mais je n'ai pas eu le temps de chercher je dois m'y remettre aussi mais tiens le lien ca peut te servir
http://dev.mysql.com/doc/refman/5.0/...functions.html
ce lien revoie sur les fonctions sur les chaines de caractère en MySql
il ya aussi pour les operation numerique il y a moyen de trouver quelques choses d'itneressant. Peut etre en essayant de diviser ta valeur si elle se divise elle est bien numerique sinon non je sais pas exctement a toi de voir...
Bon courage
Et oui, je suis deja allé sur ce site.
Sinon merci de t'occuper de mon probleme dedef
Mais t'en fais pas je vais faire comme si le champs été numeric.
A ma connaissance il n'y a pas de fonction permettant de vérifier si une chaîne est numérique (à part peut-être les regexp)... Et on n'en a pas forcément besoin, pour deux raisons :Envoyé par Alexlesilex
- Le contrôle de saisie doit être réalisé au niveau applicatif, ce n'est pas au SGBD de vérifier si l'utilisateur s'est trompé dans le remplissage des champs.
- Tant qu'à faire autant utiliser de véritables colonnes de type numérique (INT, DECIMAL...) qui elles ne vont pas accepter des valeurs erronnées.
Pensez au bouton
Pour le fait de mettre de "veritables colonnes" de type numérique je suis d'accord à 100 % mais le probleme est que je ne peux pas changer les noms de champs car je met à jour a partir d'une base ACCESS et il faut donc que les champs soit identiques, de plus la personne qui va utilisé monapplication ne veut pas changer toute sa base ACCESS car ca reviendrais à modifier toutes les requêtes ( ce qui fait une masse de travail trop important ).
Mais je suis d'accord ce n'est pas le meilleur, mais bon je fais avec.
Merci pour les reponses.
Bonjour,
je ne pense pas qu'il existe une commande Pb qui le permet (jusqu'à preuve du contraire). Mais tu peux utiliser l'une des solutions suivantes:
1. Créer une fonction qui teste les types de champ (si numérique ou pas)
2. Utiliser une fonction IP de windows (IsNumeric () ou IsDigit)
3. Solution un peu pénible mais c'est quand même une solution :
Tester le contenu du champ octet par octet
Voila.
A bientôt
Mekkisoft
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager