8792 sujets

Développement web côté serveur, CMS

Bonjour
J'ai une table avec un champ texte qui contient des nombres de 0 à 999. Pour créer une clé je veux concaténer ce champs à un texte (évolutif) de la forme aaa00_ avec la fonction CONCAT('aaa00_',chp). Mon pb est que le résultat n'est pas celui escompté si dans la suite des enregistrements un chp ne contient qu'un caractère, la concaténation suivante le rajoute à la base.
Ex ch(n):0 résultat aaa00_0
ch(n+1):11 résultat aa00_011 !!
Je pense que c'est un pb de collation et j'aimerai m'en sortir quelque-soit la config de mysql.
Bizarre ton truc !
Ton n+1 il est fait comment et où ?
S'il le fait avec 0 il doit aussi le faire avec 25

ch(n):25 résultat aaa00_25
ch(n+1):11 résultat aa00_2511 !!

Fais voir ta requête.
He ben non.
Il ne se fait qu'avec les chp ne comportant qu'un caractère
ch(1):25 résultat aaa00_25
ch(n+1):11 résultat aa00_11
ch(n+2):1 résultat aa00_1
ch(n+3):4 résultat aa00_14


CREATE TABLE saf_realise SELECT t_invgendet.CODE_EMAT8, t_invgendet.QTE, CONCAT(P1,P2) AS POS, CONCAT('saf00_',t_invgendet.CLE_SITE_SAF) AS CLE_SITE_SAF, t_detdep.CIE 
FROM t_invgendet INNER JOIN t_detdep ON t_invgendet.CLE_SITE_SAF = t_detdep .CLE_SITE_SAF
WHERE t_detdep .DTE_SUPPR IS NULL


Nota: tous les chp des tables sources sont en txt (varchar)
Après scrutation des résultats, encore mieux
ch(1):25 résultat aaa00_25
ch(n+1):11 résultat aa00_11
ch(n+2):1 résultat aa00_1
ch(n+3):4 résultat aa00_14
ch(n+4):100 résultat aa00_14100
ch(n+5):800 résultat aa00_14100800 et ainsi de suite

ch(n+2) reste en mémoire et dès que la formule rencontre une 2ème valeur = à un caractère l'empilement commence. Testé avec des lettre c'est idem