Requette complexe

Répondre
maxroucool
le 09/06/2006 à 22:41
maxroucool
Salut tlm,

j'ai besoin de votre aide pour faire une requette. Je sais meme pas si elle est réalisable, mais je pense qu'avec un JOIN, ca doit le faire?

Je vous explique:
- J'ai une table "fiche", avec le champ "id", et "nom".
- J'ai une autre table "clips", avec un champ "id_corres".

Ce champs "id_corres" peut prendre deux types de valeur.
Soit c'est un nombre, il correspond alors a l'id de la table "fiche".
Soit c'est une chaine alpha numerique, il ne correspond alors a rien du tout.

Voila ma question:
Je voudrais faire en une seule requette, faire une recherche dans les "fiche.nom" qui correspondent au "clip.id_corres" (si c'est un chiffre), et dans les "clip.id_corres" (si c'est une chaine alpha numerique).


J'espere que vous avez compris!!

Je vous remercie!
+++
LA GLOBULE
le 10/06/2006 à 12:15
LA GLOBULE
L'idée, ca serait donc de savoir si ton champs contient un nombre ou bien autre chose si j'ai bien compris.

Je viens de regarder la documentation MySQL, et a priori, je n'ai pas trouvé de fonction permettant de faire cette distinction (sur un varchar).

Tu devrais pouvoir t'en sortir avec un REGEXP (expression régulière en SQL : la regexp permettant de savoir si le varchar est un nombre ou non, tout çà avec un IF en SQL, et ca devrait rouler).
maxroucool
le 10/06/2006 à 13:22
maxroucool
non, en fait c'est pas ca.

je vais etre concret, ca ira peut etre mieux.
Dans "fiche.nom" y'a un nom d'artiste.
Dans "clip.id_corres":
- il y a soit un nom d'artiste (si je n'ai pas encore fait de fiche sur cet artiste)
- soit il y a l'id de l'artiste qui correspond au "fiche.id" si j'ai deja fait une fiche sur cet artiste.

Et avec ma requete, je voudrais pouvoir faire une recherche affichant tous les clips d'un artiste. Il faudrait donc faire en meme temps une recherche dans "fiche.nom" et dans "clips.id" (si cet id n'est pas un chiffre), puis afficher tous les clips qui correspondent.

J'espere avoir été plus claire!


Merci bp!
+++
i M@N
le 10/06/2006 à 13:34
i M@N
Reuh ...

@ la réflexion je pense pas que is_numeric fera l'affaire : il faudrait tester le contenu de tous les valeurs des champs de la table et ça sera pas une bonne idée.

Pourquoi ne pas remplacer les champs qui contiennent une valeur alphanumérique par un 0 ... comme ça dans la requête tu ajoutes juste une condition WHERE champ > 0.

@+...
One Love, One Heart, One Unity.
Répondre

Ecrire un message

Votre message vient d'être créé avec succès.
LoadingChargement en cours