Page 1 sur 1

MySQL : séparer un champ, transfèrer vers une colonne

Posté : 11 août 2014, 08:03
par stanak
salut à tous

voila, j'ai une colonne COL1 avec des champs comprenant des valeurs avec un séparateur (un slash / )
j'ai créer une 2e colonne COL2 où je voudrais transférer les caractères se trouvant à droite du slash
et supprimer le slash et les espaces avant et après celui ci (bon ça c'est optionnel, possible update dans un CSV)
exemple :
_ _| _ COL1 _| _ COL2
L1 | 14 / BD | vide
devient
__ |COL1|COL2
L1 | 14 _|_ BD

merci de votre aide
stef

Re: MySQL : séparer un champ, transfèrer vers une colonne

Posté : 11 août 2014, 17:31
par stanak
bon, ça commence à venir
j'ai trouvé (sur le net) comment sélectionner la partie droite du slash
SELECT RIGHT( `COL1` , LOCATE( "/", `COL1` ) +1 ) AS `COL1RIGHT`
FROM `table_test`
WHERE LOCATE( "/", `COL1` ) >0
AND COL2 = ""
COL1RIGHT
BD
reste plus qu' à trouver comment copier le résultat vers la COL2 :-k

Re: MySQL : séparer un champ, transfèrer vers une colonne

Posté : 14 août 2014, 09:42
par moogli
Salut,

Le plus simple c'est de faire une fonction ou une procédure stockée.

@+

Re: MySQL : séparer un champ, transfèrer vers une colonne

Posté : 03 sept. 2014, 20:30
par stanak
je viens de tomber (suis une quiche en php!) sur la fonction explode() qui répond à mes attentes
je l'ai inclus dans la page de modif administrateur
je n'ai plus à faire de couper/coller (m'en reste plus que 6000 ;) )

ce sont des immats d'avions : numéro de série et code opérationnel séparé par un " / "
$v_sn = $row[ sn ] ; // exemple: 34 / BD

list($sn1, $immat1) = explode(" / ", $v_sn);

$v_imm = $row[ immat ] ;
if  ($v_imm == '') $v_imm = $immat1 AND $v_sn = $sn1 ;

echo $v_sn ; // 34
echo $v_immat ; // BD
et hop, je valide la modif

plus qu'à trouver une astuce pour faire ça en série et non pas à l'unité #-o

Re: MySQL : séparer un champ, transfèrer vers une colonne

Posté : 05 sept. 2014, 08:09
par stanak
j'ai inclus un Update supplémentaire dans l'affichage des photos
ainsi, non seulement, il incrémente le compteur mais participe à la modif de l'immat
il bosse pour moi sans le savoir :mrgreen:
j'ai mis un compteur en page d'accueil pour avoir un oeil sur le restant à modifier
http://stanakshot.free.fr