Partage
  • Partager sur Facebook
  • Partager sur Twitter

MySQL : ordonné les résultats selon les caractères.

Avec une regex, je pense.

    3 décembre 2006 à 13:06:19

    Bonjour,

    J'ai un petit problème que je n'arrive pas à résoudre malgrès mes nombreuses recherches sur internet : en fait, j'ai une base de données MySQL dans laquelle il y a un champ "file_url", ce champ contient donc des urls de fichiers [i](photo.png, musique.mp3, document.doc, ...)[/i] et j'aimerais les afficher par type de fichiers, avec *ORDER BY [ ... ]* donc. Mais pour que le script trie correctement les données, il faut qu'il ne prenne en compte que les caractères suivant le dernier point de l'url (.) et rassemble tous les fichiers similaire.

    Savez-vous comment procéder ? Je sais que c'est avec une regex, mais je ne sais pas trop comment faire. Merci d'avance à ceux qui pourront m'apporter une aide. :)

    Bonne journée.
    • Partager sur Facebook
    • Partager sur Twitter
      3 décembre 2006 à 13:41:17

      Si j'étais toi, je stockerais le nom du fichier (sans l'extension) dans un champ et l'extension dans un 2ème champ. Ensuite, à l'affichage et au traitement, tu rajoutes juste un point entre les 2.

      C'est comme ça que je procède et je trouve ça assez pratique, car ça facilite grandement les recherches :)
      • Partager sur Facebook
      • Partager sur Twitter
        3 décembre 2006 à 15:42:44

        Merci à toi d'avoir répondu :)

        J'avais pensé à cette solution, mais j'aimerais savoir si c'est possible d'y arriver avec une regex quand même. Si faire un second champ pour l'extension résoud pas mal de soucis (quoi que ça fait encore un champ en plus ...), je reste sur ma faim car je n'ai pas trouvé la solution au problème initial et je suis assez têtu ... j'aime bien tout comprendre :-°

        Et ça me servira sans-doute ultérieurement, donc si quelqu'un sait comment faire ce genre de requête, qu'il n'hésite pas & encore merci Rod_Laver. :)
        • Partager sur Facebook
        • Partager sur Twitter
          3 décembre 2006 à 17:11:58

          Il suftit de regarder dans la doc
          http://dev.mysql.com/doc/refman/5.0/fr/string-functions.html#id3175688

          SELECT tesChamps FROM taTable ORDER BY SUBSTRING_INDEX(leChamp, '.', -1), leChamp;


          Devrait fonctionner.
          • Partager sur Facebook
          • Partager sur Twitter
            3 décembre 2006 à 18:54:13

            Ah oui ! Ca fonctionne ! Un énorme merci à strucky et Rod_Laver pour leur aide. :)

            A bientôt & encore merci ! :)
            • Partager sur Facebook
            • Partager sur Twitter

            MySQL : ordonné les résultats selon les caractères.

            × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
            × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
            • Editeur
            • Markdown