Cette fois je me suis créé un compte puisque si ça continue, je vais devoir élire domicile ici
Donc ma question du jour est la suivante : réussir à faire, en SQL, un explode, comme en PHP.
Comme toujours, je ne viens pas ici sans avoir fait de recherches. Visiblement des solutions existent, à coup de SUBSTR, INSTR, SUBSTRING_INDEX, mais j'ai un peu de mal (évidemment, sinon je ne serais pas là), à trouver THE syntaxe correcte et me dépatouiller avec toutes ces fonctions. En admettant que lesdites fonctions soient effectivement la solution à mon problème.
Pour parler clairement, j'ai dans ma table, un champ "notation", qui contient 5 notes, séparées par le signe dièse '#'.
Ce que je veux obtenir au final, c'est de séparer les 5 notes, pour pouvoir en calculer la moyenne. En SQL hein. Car je veux pouvoir ordonner les résultats de ma requête selon cette moyenne justement.
Exemple :
notation
8#7#9#3#1
5#6#7#8#9
>> Le résultat attendu :
notation ----- note1 - note2 - note3 - note4 - note5
8#7#9#3#1 -- 8 7 9 3 1
5#6#7#8#9 -- 5 6 7 8 9
Ma modeste tentative...
SELECT id,nom,notation,
SUBSTRING_INDEX(notation,'#',1) AS note1
FROM matable WHERE notation!=0
PrécisionCe qui me retourne correctement la première note.
Je précise que le champ notation contient soit 0, soit les 5 notes séparées toujours de la même manière par le signe # (d'où la clause WHERE).
Petite complication
Les notes possibles vont de 1 à 10. Ce qui fait qu'entre deux signes dièses on peut aussi bien avoir la note sur un seul caractère, ou sur deux...
Je retourne à mes tests, des fois que j'ai un éclair de génie lol.
Merci pour votre aide !!