• # order by ?

    Posté par . En réponse au message MySQL : échanger deux lignes. Évalué à 6.

    je sais pas si on t'as déje expliqué le principe ensembliste d'une base de donnée...

    rien n'est ordonné dans une table d'une base de donnée (c'est du moins le principe, même si certains dbms s'amusent parfois à trier les résultats bizarrement selon un certain ordre toujours pareil, mais osef)

    si tu veux swapper 2 lignes, faut le faire soit en parametrisant ta requete via des clauses d'ordonencement (order by), soit de groupement (group by) (c'est plus rarement utilisé, déja).

    tu peux swapper les tuples de ta table autant de fois que tu veux, tu ne sera jamais sur de les avoir dans l'ordre que tu veux.
    pitet que mysql te les donnera dans le sens désiré parce qu'il fonctionne comme ca, mais un autre dbms te les sortira autrement, parce qu'il n'est défini nulle par dans la norme sql 92 (ou sql99) qu'un dbms doit sortir les données selon un certain ordre quand ca ne lui est pas demandé...

    (pour résumer tres fort, un dbms relationnel fonctionne exactement comme les ensembles d'un point de vue mathématique. si un diagramme de Venn peut t'aider à comprendre le truc, hésite pas ;))