Avatar billede bixen Nybegynder
22. april 2003 - 12:12 Der er 6 kommentarer og
1 løsning

SQL forespørgsel

Hvordan laves en forespørgsel til PHPmyadmin...

Den skal finde DISTINCT i "table" hvor "link" ikke indeholder "fejlord" order by link DISTINCT

Samtidig med at køre DISTINCT skal den også tælle hvor mange der er af hver...

Så den laver en slags oversigt over hvor mange gange der f.eks står "www.google.com" i "table"


Hvordan laves dette ?
Avatar billede fsconsult.dk Nybegynder
22. april 2003 - 12:20 #1
Det lyder som om det er GROUP BY og ikke DISTINCT du skal benytte.

F.eks:

SELECT link, count(*) as rowcount
FROM table
WHERE NOT link LIKE "%fejlord%"
GROUP BY link
ORDER BY link

Hvilket giver dig en række for hver forekomst i "table" hvor feltet "link" ikke  indeholder "fejlord", og hvor du får "rowcount" tilbage som antallet er forekomster "link" optræder med i tabellen.
Avatar billede jakoba Nybegynder
22. april 2003 - 12:21 #2
Her bruger du en COUNT istedetfor DISTINCT

$sql_kommando = "
    SELECT count(*) as antal_uden_bixen
    FROM dintabel
    WHERE NOT ( tabelfelt like '%bixen%' )
";

eller

$sql_kommando = "
    SELECT count(*) as antal_med_bixen
    FROM dintabel
    WHERE tabelfelt like '%bixen%'
";

mvh JakobA
Avatar billede bixen Nybegynder
22. april 2003 - 12:43 #3
ingen af jeres forslag tæller hvor mange der er af de forskellige "link" men antal ialt...
Avatar billede fsconsult.dk Nybegynder
22. april 2003 - 13:10 #4
SELECT COUNT(*) GROUP BY giver antal forekomster af hvert "link".

Dit ønske var måske at få antallet af forskellige "link"? 

Antallet af forskellige "links" er lige med antal rækker som forespørgslen returnerer. Hvilket er relativt simpelt at lave i PHP, men du ønsker en ren SQL løsning? (hvis det skal køres i PHPmyadmin)
Avatar billede jakoba Nybegynder
22. april 2003 - 13:13 #5
jeg er usikker, men prøv:

SELECT COUNT( DISTINCT link ) as linkcount
FROM table
WHERE NOT link LIKE "%fejlord%"

det er muligt du kommer til at lave 2 queries
Avatar billede jakoba Nybegynder
22. april 2003 - 13:21 #6
Ups. ja naturligvis :) blot en
  mysql_num_rows( $resultatset_fra_ fsconsultdk22042003122011 );
Avatar billede bixen Nybegynder
08. maj 2003 - 16:51 #7
Lukker...
Avatar billede Ny bruger Nybegynder

Din løsning...

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.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester