Bonjour,
est ce qu'il y a un moyen pour faire un split d'une chaine de caractères en fonction d'un caractère donné (un tiret '-' par exemple) avec SQL ?
Bonjour,
est ce qu'il y a un moyen pour faire un split d'une chaine de caractères en fonction d'un caractère donné (un tiret '-' par exemple) avec SQL ?
je comprend bien mais, ligne par ligne ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 table ----- a b c d
ca ne me dérange pas ligne par ligne ou pas, car ce n'est qu'un moyen pour moi pour mettre le résultat dans le where de ma requete. Par exemple, une requete du genre :
moi je veux que le a soit le résultat d'un split du string d'origine.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 SELECT * FROM Table where name = a
Bonjour,
si tu veux faire une recherche du type "monchamp de la forme 'a' ou 'b' ou 'c' ou 'd'" :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 <?php $machaine = 'a-b-c-d'; $in_chaine = str_replace('-',',',$machaine); // -> de la forme a,b,c,d // la requete $requete = "SELECT ......... WHERE monchamp IN (".$in_chaine.");"; ?>
Si tu veux des resultats séparés :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 <?php $machaine = 'a-b-c-d'; $bouts_chaine = explode('-',$machaine); // -> array des bouts de chaine // les requetes successives for ($i=0; $i<sizeof($bouts_chaine); $i++) { $requete = "SELECT ......... WHERE monchamp = '".$bouts_chaine[$i]."';"; // ... } ?>
sans la boucle for, je voudrais toujours récupérer uniquement le premier bout ou le second ou le troisème (dans le sens que je connais toujours la position de la partie à récupérer.
Si je suis ton code, pourquoi un simplene marche pas ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part explode('-',$machaine)[1]
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 $vars = explode('-',$machaine); echo $vars[1];
j'ai cette erreur :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 Error Code : 1064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '$vars = explode('-', $machaine)' at line 1
c'est pas mettre dans ta requete SQL ça...
montre tout ton code
voici ma requête qui marche bien avec des substring :
je voudrais éviter les substring (et surtout les substring imbriqués) pour pouvoir faire une requête propre.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 SELECT * FROM TABLE WHERE category = SUBSTRING('7-MP1-1-CD1-1',1,LOCATE('-', '7-MP1-1-CD1-1')-1)
Partager