[SQL] Requête de l'impossible ou non ?

Requête de l'impossible ou non ? [SQL] - Programmation

Marsh Posté le 06-03-2002 à 18:24:10    

Salut,
 
Je voudrais savoir si il est possible a partir d'une requete SQL de couper un champ en deux...:crazy: je m'explique...j'ai une base de données de mes MP3 qui possède un champ fichier. Je voudrais transformer ce champs en deux champs (artiste et chanson). Sachant que dans le champs fichier le texte est "formaté" de la manière suivante "artiste - chanson", il me faudrait donc une requête qui place artiste dans un champ artiste et chanson dans un champ chanson.
 
Alors selon vous c'est possible ? et si oui comment ?

 

[jfdsdjhfuetppo]--Message édité par Webman--[/jfdsdjhfuetppo]

Reply

Marsh Posté le 06-03-2002 à 18:24:10   

Reply

Marsh Posté le 06-03-2002 à 18:40:52    

tu recupere ton titre dans une chaine de caractere, apres fo isoler les parties qui t'interresse en utilisant les regexp...
Bonnes chances car c pas simples !

Reply

Marsh Posté le 06-03-2002 à 18:53:10    

Merci pour ta réponse ! :jap:
... mais je fais du SQL depuis seulement un mois...:cry:... y aurait pas un moyen plus simple ?

 

[jfdsdjhfuetppo]--Message édité par Webman--[/jfdsdjhfuetppo]

Reply

Marsh Posté le 06-03-2002 à 19:03:43    

tu les consulte comment tes données?
qd meme pas en mode console :/
parce que si c est en php ca doit pas etre tres compliqué

 

[jfdsdjhfuetppo]--Message édité par veryfree--[/jfdsdjhfuetppo]

Reply

Marsh Posté le 06-03-2002 à 19:05:42    

veryfree a écrit a écrit :

tu les consulte comment tes données?
qd meme pas en mode console :/
parce que si c est en php ca doit pas etre tres compliqué  




 
Je consulte mes données avec un formulaire tout con...c'est une base Access 2000 :D

Reply

Marsh Posté le 06-03-2002 à 19:44:38    

Webman a écrit a écrit :

Salut,
 
Je voudrais savoir si il est possible a partir d'une requete SQL de couper un champ en deux...:crazy: je m'explique...j'ai une base de données de mes MP3 qui possède un champ fichier. Je voudrais transformer ce champs en deux champs (artiste et chanson). Sachant que dans le champs fichier le texte est "formaté" de la manière suivante "artiste - chanson", il me faudrait donc une requête qui place artiste dans un champ artiste et chanson dans un champ chanson.
 
Alors selon vous c'est possible ? et si oui comment ?  
 
 




 
Tu pourrais efectivement faire ca avec des regexps , c'est assez simple en fait, mais faut faire une boucle sur chaque élément du résultat puis remettre le résultat dans la base de données.
 
Essaie ça pour voir (tout en un dans une requête) :
 
UPDATE liste_mp3
SET artiste=SUBSTRING_INDEX(nom_fichier, ' - ', 1), chanson=SUBSTRING_INDEX(nom_fichier, ' - ', -1)
 
Tu l'auras compris, le nom du fichier se trouve dans le champ nom_fichier, le nom de l'artiste dans le champ artiste et le nom de la chanson dans le champ chanson.
 
SUBSTRING sort de la doc MySQL mais j'espère (pour toi ?) que ça marche aussi sous SQL.
 
Voici la doc de SUBSTRING :
 
SUBSTRING_INDEX(str,delim,count)  
Returns the substring from string str before count occurrences of the delimiter delim. If count is positive, everything to the left of the final delimiter (counting from the left) is returned. If count is negative, everything to the right of the final delimiter (counting from the right) is returned:  
mysql> select SUBSTRING_INDEX('www.mysql.com', '.', 2);
        -> 'www.mysql'
mysql> select SUBSTRING_INDEX('www.mysql.com', '.', -2);
        -> 'mysql.com'
This function is multi-byte safe.

Reply

Marsh Posté le 06-03-2002 à 19:49:33    

je sait pas si ce qu a ecrit Tentacle marche sous access... le sql de micro$oft  :gun:  
a mon avis tu devrait faire ca en vb : tu coupe la chaine en deux grace au separateur "-"

Reply

Marsh Posté le 06-03-2002 à 20:17:25    

Apparement cette requête SQL nefonctionne pas ou alors c'est moi qui ne fait ce qu'il faut... merci quand meme pour votre aide !
 
J'essayerai bien en VB mais ca fait plus d'un an que j'en ai pas fait... alors je vais passer 8 jours a trouver le bon code...
je crois que je vais laisser tomber et tout me taper a la main... aie aie aie... mon clavier va avoir mal a la tete... :cry:

Reply

Marsh Posté le 24-07-2009 à 10:50:58    

Oui c'est possible!!!
 
DECLARE @Chaine VARCHAR(50)
SET @Chaine='artiste-chanson'
 
SELECT  @Chaine AS Chaine,
SUBSTRING(@Chaine,1,CHARINDEX('-',@Chaine, 0)-1) AS artiste,  
SUBSTRING(@Chaine,CHARINDEX('-',@Chaine, 0)+1,CHARINDEX('-',@Chaine, 0)-1) AS chanson

Reply

Marsh Posté le 24-07-2009 à 10:59:23    

7 ans après.. j'espère qu'il t'a pas attendu :heink:


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed