Tom's Guide > Forum > Programmation > requête mysql

requête mysql

Forum Programmation : requête mysql

TomsGuide.com : 800 000 inscrits répondent à toutes vos questions high-tech et informatique. Pour obtenir de l'aide, inscrivez-vous gratuitement !
Mot :    Pseudo :           
 

Bonjour,
J'ai besoin d'un chti coup d'pouce sur une requêteen php sur une bdd mysql.

disons que j'aiune BDD ainsi :

id nom description adresse autre
1 truc bidule blabla A
2 machin obiwan kenobi B
3 luke je suis ton pere A
4 truc machin chose A
5 doh Hmmm un donut C

Bref ca suffira
Je veux tout reprendre qui contient un certain argument dans la colonne autre par exemple, la aucun soucis (select * from t_truc where autre='A' etc...
mon probleme c'est que je veux exclure les lignes de la colonne nom par exemple ou y'a un doublon, par exemple je ne veux pas voir apparaitre dans ma réponse 2 fois truc

Dans l'exemple la au final a lieu d'obtenir les lignes 1, 3 et 4 je ne veux que les lignes 1 et 3

Merci d'avance et si j'ai pas été tres clair n'hésitez pas a me demander d'autre précisions.

Liens sponsorisés
Inscrivez-vous ou connectez-vous pour masquer ceci.

salut, sous mysql (c'est pas vraiment standard):

Code :
  1. select * from t_truc where autre='A' group by nom


mais il te sortira la 2eme ligne de truc

en sql plus standard, il faut appliquer un fonction d'aggrégat (min, max...) aux colonnes non concernées par le 'group by'

------------------------------ Ne pas oublier le [resolu] pour finir le sujet.
Penser à voir les tutos, ca peut aider!
Répondre à coca25

J'suis pas sûr d'avoir compris,y'a pas moyen donc de n'affichier qu'une fois la ligne truc ?
Sinon y'a pas une astuce pour au final n'en afficher qu'une sur le site ?

Répondre à Leank

t'aurais pu tester la ligne, ca ne coute rien!
quand je dis qu'il va sortir la 2eme, je voulais dire par la qu'il va en sortir une seule mais pas la 1ere.

------------------------------ Ne pas oublier le [resolu] pour finir le sujet.
Penser à voir les tutos, ca peut aider!
Répondre à coca25

Ok désolé je suis au boulot là je ne peux pas tester :)
Merci ;)


Message édité par Leank le 29-02-2008 à 12:42:38
Répondre à Leank

habituellement on évite le "select *" : met plutot "select nom" par exemple.

Répondre à jerbe

peu importe, si tu veux récupérer toutes les colonnes, une '*' ou la liste des colonnes revient strictement au même.

------------------------------ Ne pas oublier le [resolu] pour finir le sujet.
Penser à voir les tutos, ca peut aider!
Répondre à coca25

Bonjour,
essaye d'utiliser le DISTINCT sur le champ que tu veux afficher, par exemple

SELECT DISTINCT(autre) , * FROM t_truc
WHERE autre = "A"

je ne sais pas si ça va marcher ou pas dans ton exmple, mais ce mot clé permet d'afficher qu'une seule fois chaque enregistrement sélectionné, dans ton cas "autre"

------------------------------ Qui veut atteindre la perfection, veut marcher sur l'horizon.

La perfection est impossible à atteindre ? Il y en a pourtant qui la détruisent.
Répondre à crazyangelbones

distinct s'applique à la ligne, pas à l'enregistrement.

------------------------------ Ne pas oublier le [resolu] pour finir le sujet.
Penser à voir les tutos, ca peut aider!
Répondre à coca25

oui c'est vrai dans le cas ou distict s'applique à une combinaison de champs, j'ai testé ça sur phpMyAdmin mais faut vraiment spécifier les champs à sélectionner
donc ça ne répond pas à 100% à la question mais je te remercie de m'avoir notifié par cette remarque, ça me permet de m'auto corriger

------------------------------ Qui veut atteindre la perfection, veut marcher sur l'horizon.

La perfection est impossible à atteindre ? Il y en a pourtant qui la détruisent.
Répondre à crazyangelbones

En tous cas merci a tous de vous être penchés sur mon problème =)

Répondre à Leank
Tom's Guide > Forum > Programmation > requête mysql
Aller à :

Il y a 325 utilisateurs connus et inconnus. Pour voir la liste des connectés connus, cliquez ici.

Attention

Vous allez répondre sur un sujet resté inactif pendant plus de 6 mois.
Assurez-vous d'apporter des éléments nouveaux à la discussion avant de poursuivre.

Répondre Annuler
Liens