SQL - Crochets dans nom attribut
Résolu
alexdu17200
Messages postés
1579
Statut
Membre
-
cyril1982 Messages postés 110 Statut Membre -
cyril1982 Messages postés 110 Statut Membre -
Salut à tous, j'ai une base de données que sur laquelle j'effectue des requêtes, mais j'aurai besoin d'organiser le résultat d'une requête, je voudrais que l'ordre soit en fonction de l'attribut data[0], mais il semblerai que le SQL n'apprécie pas mes crochets.
Quelqu'un connaîtrait-il une méthode pour qu'il soit pris en compte? Si je pouvais éviter à avoir à modifier le nom de mes attributs, çà m'arrangerai, merci.
Quelqu'un connaîtrait-il une méthode pour qu'il soit pris en compte? Si je pouvais éviter à avoir à modifier le nom de mes attributs, çà m'arrangerai, merci.
1 réponse
-
Bonsoir,
Je ne suis pas sûr de comprendre, peux-tu nous donner ta requête ?
Tu utilises bien "order by" ?-
Bonjour,
Je peux vous donner la requête (DATA est le nom de ma table, et data[0]/[1] les noms de mes champs):SELECT data[0], data[1] FROM DATA WHERE 1 -- Jusque là, çà fonctionne ORDER BY data[0]; -- C'est là que çà coince, çà ne change rien dans l'ordre, alors que la requête via PhpMyAdmin affiche correctement le résultat
Je suis arrivé à faire ce que je souhaitais en passant parSELECT * FROM DATA
, en modifiant la structure/ le contenu des premiers éléments, puis avec la fonction phparray_multisort($data, SORT_ASC);
et en modifiant de nouveau la structure des premiers éléments pour revenir à la structure précédente. -
-
Effectivement, çà fonctionne avec un alias, également avec des quotes autour des noms des éléments.
Par contre, çà "range" toujours pas comme je le voulais, en fait ma requête avec les quotes renvoyait exactement le même résultat et surtout le même ordre.
Dans ma base dans la colonne data[0], j'ai des noms qui conservent la même structure
data_0 jusqu'à data_12, etc. Et je pensais qu'avec un Order By on pouvait ranger dans l'ordre en prenant en compte les chiffres à la suite, mais j'ai réagit un peu tardivement qu'il s'agissait de chaîne et donc que le tri se faisait pour chaque caractère. J'avais ma liste dans l'ordre data_0, data_10, data_11, data_12, data_2
Finalement j'arrive à ce que je voulais, mais c'est du bidouillage, j'ai ma liste, je dégage la partie "data_", je fais mon tri avec array_multisort (qui tri l'élément de la première colonne du tableau dans l'ordre que l'on souhaite, en prenant en compte le fait que çà soit un tableau multidimensionnel et donc que les données derrières restent sur la bonne ligne)
Après mon tri, je remet mon "data_" avant la valeur et là je l'ai dans le bon ordre. -
-
-