Distinct unique ?

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Distinct unique ?

par jojolapine » 23 févr. 2007, 17:43

Bonjour,
Alors tout d'abord j'ai réussit à faire ce que je voulais avec group by:
SELECT * FROM matable WHERE id_pack=1 GROUP BY chemin
ça fonctionne, ça me met qu'une seule entrée par image...
Ouckileou... j'ai pas trop compris ce que tu me proposait... :?
Je t'explique un peu mieu...
Je veux mettre en place une gestion d'emoticone en base de donnée...
et je veu que pour un smiley, il y est plusieurs suit de caractères correpondants...
donc pour traiter mes messages avec un str_replace, avec ma structure actuelle, j'aurai juste à faire un select de toute ma base emoticone, et j'aurai juste un petit traitement à faire pour passer de

Code : Tout sélectionner

array( array( 'chemin'=>'ijig.gif', 'shortcuts'=>':-)' ), array( 'chemin'=>'jgefg.gif', 'shortcuts'=>':D' ) )
à

Code : Tout sélectionner

array( array( 'ihdih.gif', 'igufg.gif', 'bfohf.gif', ), array( ':-)', ':D', ';-)', ) )
ça je pense pas avoir trop de problème...
Par contre lorsque j'affiche mes petits smiley au dessus du textarea où l'on écrit sont message... je vais pas afficher autant d'image que la base contient de raccourcis différents... donc je veux prendre un seul raccourcis par image (peu importe lequel)...
En gros,
le GROUP BY => pour ma fonction javascript qui affiche les images cliquables
Le select normal => pour les regexp de remplacement

Je suis plus clair?

par ouckileou » 23 févr. 2007, 17:05

En fait je me pose la question, c'est quoi ton problème, tu cherches à faire quoi en fait ? Parceque si c'est juste à afficher un seul raccourci parmi ceux dispo pour une image, ce sera pareil. Suffira juste de trier à l''affichage

par ouckileou » 23 févr. 2007, 17:02

Peut-être ,auriez vous une autre idée de structure, pour laisser la possibilité d'avoir plusieurs shortcut pour une image...?
Oui, suffit de suivre les règles de modélisation

1 image est liée à 1 ou plusieurs raccourcis
1 raccourcis est relié à 1 et 1 seule image

Une relation 1,1 entre les deux : la clé primaire de l'entité but blablabla entité source...

Code : Tout sélectionner

Images -------- id_image nom_image Raccourcis ------------ id_raccourci id_image libelle_raccourci

par jojolapine » 23 févr. 2007, 16:14

Bon ben je vois pas comment je vais faire... :(
Peut-être ,auriez vous une autre idée de structure, pour laisser la possibilité d'avoir plusieurs shortcut pour une image...?
Au pire je le ferai avec php ya pas de soucis ;-)[/php]

par Ryle » 23 févr. 2007, 16:09

si je fait ça:
SELECT DISTINCT(chemin),shortcut FROM matable
le distinct ne fonctionne plus... :?
Si si, il fonctionne... il te renvoi l'ensemble des lignes en supprimant les doublons... et comme le couple [: - ) | ./image/smile.gif] est différent de [: ) | ./image/smile.gif], il te renvoi les deux résultats, car il n'a aucune raison d'en préférer un à l'autre... (cf. ma réponse précédente)

par jojolapine » 23 févr. 2007, 15:22

Fais voir la requête que tu as essayée
la voila:
SELECT DISTINCT(chemin) FROM matable
le résultat est bon, seulement je n'ai pas les autres information, et si je fait ça:
SELECT DISTINCT(chemin),shortcut FROM matable
le distinct ne fonctionne plus... :?

par sharpe98 » 23 févr. 2007, 15:11

Essaie avec :
SELECT * FROM table GROUP BY chemin ORDER BY id;

par Ryle » 23 févr. 2007, 14:56

Ca me parait difficilement faisable en sql... même avec un distinct, pourquoi la base renverrait-elle l'enregistrement 1 plutôt que l'enregistrement 2 ? même si pour toi le résultat serait égal, tu ne peux pas lui demander de trancher et d'en choisir un plutôt qu'un autre à ta place...

C'est peut être possible, mais ca sera à mon avis beaucoup plus lourd que de filtrer les enregistrements à l'arrivée avec un continue :)

par ouckileou » 23 févr. 2007, 14:49

Fais voir la requête que tu as essayée

Distinct unique ?

par jojolapine » 23 févr. 2007, 14:21

Bonjour à tous,
J'ai un petit problème de select sur une de mes tables...
Alors la structure:

Code : Tout sélectionner

id | auto_increment id_packs | int shortcut | varchar chemin | varchar descri | varchar
voici un exemple de contenu:

Code : Tout sélectionner

id | shortcut | chemin | descri ----------------------------------------------- 1 | :-) | ./image/smile.gif | hahah 2 | :) | ./image/smile.gif | hahah2 3 | :-s | ./image/confu.gif | confu 4 | :-S | ./image/confu.gif | confu 5 | :s | ./image/confu.gif | confu 6 | :S | ./image/confu.gif | confu
vous l'aurez compris, c'est pour gérer des émoticones...
Bon maintenant, voilà ce que je n'arrive pas à faire, je voudrait pouvoir selectionner seulement un des enregistrement correspondant à chaque image, j'ai essayer distinct(chemin), seulement, je n'arrive pas à recupérer en même temps les autres champs... voilà ce que ça devrait donner au final:

Code : Tout sélectionner

id | shortcut | chemin | descri ----------------------------------------------- 1 | :-) | ./image/smile.gif | hahah 3 | :-s | ./image/confu.gif | confu
c'est pour construire ma fonction javascript, qui génère des petits boutons...
Voilà merci d'avance à ceux qui auraient la solution ;-)