/ Forside / Teknologi / Udvikling / PHP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
PHP
#NavnPoint
rfh 3959
natmaden 3372
poul_from 3310
funbreak 2700
stone47 2230
Jin2k 1960
Angband 1743
Bjerner 1249
refi 1185
10  Interkril.. 1146
[MySQL] vise ens poster
Fra : Thomas Elmkjær


Dato : 09-11-02 17:58

Hej
Jeg skal lave en query der viser alle de poster hvor en given værdi optræder
flere gange. F.eks alle de records hvor emailadressen er den samme. Det
nærmeste jeg er kommet er group by hvor count(email) er > 1, men der viser
den jo kun 1 record.
Hvordan viser man alle de records hvor count(email)>1?
Med andre ord skal jeg vise de records der IKKE er distinct.
Håber jeg udtrykker mig klart nok, og at jeg kan finde hjælp her.
Mvh
Thomas






 
 
Peter Brodersen (10-11-2002)
Kommentar
Fra : Peter Brodersen


Dato : 10-11-02 18:13

On Sat, 9 Nov 2002 17:57:57 +0100, "Thomas Elmkjær" <thomas@mnl.dk>
wrote:

>Jeg skal lave en query der viser alle de poster hvor en given værdi optræder
>flere gange. F.eks alle de records hvor emailadressen er den samme. Det
>nærmeste jeg er kommet er group by hvor count(email) er > 1, men der viser
>den jo kun 1 record.

Prøv med: SELECT COUNT(*) AS antal, email FROM tabel GROUP BY email
HAVING antal > 1;

HAVING bliver udført efter din GROUP BY. Det lyder som om, det er det,
du leder efter.

--
- Peter Brodersen

Jakob Bock (10-11-2002)
Kommentar
Fra : Jakob Bock


Dato : 10-11-02 18:21

Thomas Elmkjær skrev:

> Jeg skal lave en query der viser alle de poster hvor en given værdi optræder
> flere gange. F.eks alle de records hvor emailadressen er den samme. Det
> nærmeste jeg er kommet er group by hvor count(email) er > 1, men der viser
> den jo kun 1 record.

Det tror jeg umiddelbart ikke du kan gøre i een forespørgsel. Du bliver
derfor nok nødt til at hente resultet og så lave en ny forespørgsel baseret
på det første resultat. Du kan evt. lave det direkte i MySQL vha. en
midlertidig tabel, hvilket nok er hurtigere end at arkivere resultatet i en
PHP-variable først.

Eksempel:

CREATE TEMPORARY TABLE tmp ( id SMALLINT UNSIGNED NOT NULL UNIQUE ) TYPE =
HEAP;

INSERT INTO tmp SELECT id FROM x GROUP BY value HAVING COUNT(value) > 1;

SELECT x.* FROM tmp, x WHERE tmp.id = x.id ORDER BY value;


Venlig hilsen
Jakob Bock


Thomas Elmkjær (09-11-2002)
Kommentar
Fra : Thomas Elmkjær


Dato : 09-11-02 18:53

tak skal du have..det er nok det jeg leder efter. jeg prøver mig lidt frem
mvh
Thomas
"Jakob Bock" <jakob@tegnestuen-ilt.dk> wrote in message
news:B9F4540C.37AC%jakob@tegnestuen-ilt.dk...
> Thomas Elmkjær skrev:
>
> > Jeg skal lave en query der viser alle de poster hvor en given værdi
optræder
> > flere gange. F.eks alle de records hvor emailadressen er den samme. Det
> > nærmeste jeg er kommet er group by hvor count(email) er > 1, men der
viser
> > den jo kun 1 record.
>
> Det tror jeg umiddelbart ikke du kan gøre i een forespørgsel. Du bliver
> derfor nok nødt til at hente resultet og så lave en ny forespørgsel
baseret
> på det første resultat. Du kan evt. lave det direkte i MySQL vha. en
> midlertidig tabel, hvilket nok er hurtigere end at arkivere resultatet i
en
> PHP-variable først.
>
> Eksempel:
>
> CREATE TEMPORARY TABLE tmp ( id SMALLINT UNSIGNED NOT NULL UNIQUE ) TYPE
=
> HEAP;
>
> INSERT INTO tmp SELECT id FROM x GROUP BY value HAVING COUNT(value) > 1;
>
> SELECT x.* FROM tmp, x WHERE tmp.id = x.id ORDER BY value;
>
>
> Venlig hilsen
> Jakob Bock
>



Søg
Reklame
Statistik
Spørgsmål : 177559
Tips : 31968
Nyheder : 719565
Indlæg : 6408937
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste