Aller au contenu

9 > 10 (?) : Problème de Requete MySQL


Dart

Sujets conseillés

Bonjour à tous ,

Voila le problème , je souhaite créer un identifiant de la forme 22007-(NumId) ou 72007-(NumID) dans une de mes tables.

Dans mon code je dois repérer le prochain numéro à créer lorsque je crée un nouveau login.

Pour cela , je fais une recherche du genre :

SELECT MAX(login)as max FROM `listeinscription` where login LIKE "22007-%";

(le nombre 22007 représente un critère de tri pour moi).

Cette méthode fonctionne bien , sauf que lorsque j'arrive à 22007-10 , il me répond que le maximum est 22007-9.

J'ai vérifier dans la table et effectivement c'est le cas :wacko:

Quelqu'un aurait une idée du problème ?

Lien vers le commentaire
Partager sur d’autres sites

Et qu'est-ce que j'ai comme solution pour éviter le problème ?

(Ouais , je sais , la passer en Numérique , mais j'peux point.... v_v)

Modifié par Dart
Lien vers le commentaire
Partager sur d’autres sites

Merci de ton aide ....

C'est une solution intéressante mais un peu compliqué (en fait surtout pour faire le deuxième replace et tout remettre en ordre).

En tout cas je vais regarder ça .

Merci encore

Lien vers le commentaire
Partager sur d’autres sites

Dart,

Tu peux aussi faire ça :

SELECT max(0 + right(login, length(login) - 6)) as max FROM `listeinscription` where login LIKE "22007-%";

Explication :

- je vire les 6 caractères de gauche (22007-) - à adapter s'il y a parfois plus de 5 caractère avant le '-'.

- j'ajoute 0 (ça convertit la chaîne en nombre

- je prends le max

Sinon, tu ne peux pas transformer ton 22007-9 en 22007-00009 ?

Ca résoudrait aussi ton problème, le tri se ferait correctement.

M

Modifié par marcb
Lien vers le commentaire
Partager sur d’autres sites

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...