07. januar 2008 - 13:23Der er
9 kommentarer og 1 løsning
DISTINCT spørgsmål
Jeg har en query der ser sådan ud: $query = mysql_query ("SELECT DISTINCT pic, type, overflade, kombi, dybde_min, dybde_max, hoejde, bredde, kommentar FROM $projekt") or die(mysql_error());
Jeg skal bruge id'et på de linjer den finder.
men hvis jeg laver den sådan:
$query = mysql_query ("SELECT DISTINCT id, pic, type, overflade, kombi, dybde_min, dybde_max, hoejde, bredde, kommentar FROM $projekt") or die(mysql_error());
tager den alle linjer ud, da id'et altid er forskelligt.
Et simpelt lille hack var måske at bruge GROUP BY i stedet for DISTINCT.
$query = mysql_query ("SELECT id, pic, type, overflade, kombi, dybde_min, dybde_max, hoejde, bredde, kommentar FROM $projekt GROUP BY pic, type, overflade, kombi, dybde_min, dybde_max, hoejde, bredde, kommentar") or die(mysql_error());
MySQL kan godt finde ud af at vælge en af værdierne når nogle ikke-beregnede felter ikke er med i ens GROUP BY, så du burde få et ID pr. kombination af de felter du angiver. Du kan evt. bruge MAX eller MIN for at være sikker på du får det højeste/mindste - hvis det har noget at sige, altså.
Samme løsning fra mig, dog kun med MIN eller MAX, ikke den der specielle mysql-ting, der vælger en "tilfældig" - det er nemlig ikke rigtig SQL, og vil ikke virke andre steder.
Men er du nødt til at lave den slags forespørgsler, så er der måske noget uhensigtsmæssigt i din database-opbygning.
kan godt være min database-opbygning ikke er helt i top.
men: du registrerer et møbel. finder et mere af samme slags. trykker tilføj for at tilføje. det skal have sin egen linje, selvom det er indentisk med det andet. (krav da det skal eksporteres til excel senere.) men på den ene liste skal man kun kunne se et af hvert møbel.(så registreringen bliver mere overskuelig.)
Det er ikke fordi det absolut skal ændres ... men man kunne have et antalfelt ved siden af møbeloplysningerne, og blot sprede det ud til flere linie ved overførsel til Excel.
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.