Bonjour, je recherche à récuperer toutes les positions d'un caracteres dans un champs .
exemple
champ test : 01001100101
on doit donc trouver : 2;5;6;9;11
on peut mettre les varleurs dans une table temporaire si cela est plus simple.
cdt,
Bonjour, je recherche à récuperer toutes les positions d'un caracteres dans un champs .
exemple
champ test : 01001100101
on doit donc trouver : 2;5;6;9;11
on peut mettre les varleurs dans une table temporaire si cela est plus simple.
cdt,
Si vous avec MySQL 8.0 et donc accès aux requêtes récursives :
Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 with T1 (T1sec, T1pos) as (select 0, locate('1', '01001100101', 1) union all select T1seq+1, locate('1', '01001100101', T1pos+1) from T1 where T1pos < 10 ) select * from T1 ;
j'ai résolu mon soucis avec un while et un curseur :
Il me reste à mettre tout cela en forme pur que cela soit effectuer via un shell
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 OPEN monCurseurCible; cible_loop: LOOP FETCH monCurseurCible INTO var_cible, var_ref; IF done = 1 THEN LEAVE cible_loop; END IF; -- on calcule la 1er position SET var_position = LOCATE(1,var_cible) ; -- on boucle sur toutes les caractères de cible pour lire WHILE var_position >= 1 DO INSERT INTO test_position ( ref ,position_regate ) VALUES ( var_ref, var_position ) ; SET var_position = LOCATE(1,var_cible,var_position+1) ; END WHILE ; END LOOP; CLOSE monCurseurCible;
une autre demande sur le forum .
cdt
stephane
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