Toon posts:

[mysql] phpMyAdmin vraag/onthulling

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik heb een vraagje......

Ik voer een SQL uit bij phpMyAdmin:

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
SELECT HIGH_PRIORITY IdBedrijf, Bedrijfsnaam 
FROM `Bedrijven` AS `g` 
WHERE g.Land = 'Nederland' AND g.Postcode 
LIKE '%' AND 
MATCH ( 
g.Bedrijfsnaam 
) 
AGAINST ( 
'*landbouw*' 
IN BOOLEAN 
MODE 
) 
ORDER BY Bedrijfsnaam ASC , Postcode ASC , Plaats ASC  LIMIT 0 , 30


en ik krijg dit:

Toon Records 0 - 29 (910 totaal, Query duurde 0.0284 sec)

Hoe telt hij zo snel die rijen (dus met limit en zonder limt, terwijl mijn database 1154122 records telt (dus hij telts ze met de filter er in)

Hoe kan ik dat ook doen in mijn php script???

  • simon
  • Registratie: Maart 2002
  • Laatst online: 14:14

|>


Verwijderd

Topicstarter
ja, dan krijg ik 29 terug!

En ik wil dan die 910 krijgen!

  • B-Man
  • Registratie: Februari 2000
  • Niet online
Verwijderd schreef op 16 april 2004 @ 21:40:
Ik heb een vraagje......

Ik voer een SQL uit bij phpMyAdmin:

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
SELECT HIGH_PRIORITY IdBedrijf, Bedrijfsnaam 
FROM `Bedrijven` AS `g` 
WHERE g.Land = 'Nederland' AND g.Postcode 
LIKE '%' AND 
MATCH ( 
g.Bedrijfsnaam 
) 
AGAINST ( 
'*landbouw*' 
IN BOOLEAN 
MODE 
) 
ORDER BY Bedrijfsnaam ASC , Postcode ASC , Plaats ASC  LIMIT 0 , 30


en ik krijg dit:

Toon Records 0 - 29 (910 totaal, Query duurde 0.0284 sec)

Hoe telt hij zo snel die rijen (dus met limit en zonder limt, terwijl mijn database 1154122 records telt (dus hij telts ze met de filter er in)

Hoe kan ik dat ook doen in mijn php script???
phpMyAdmin voert een query eerst zonder limit uit, om te tellen hoeveel records het resultaat omvat (mogelijk wordt de veldselectie teruggebracht naar een count(*), en plakt er vervolgens een LIMIT x,y achter om het resultaat over een x aantal pagina's te splitsen.

Kortom:

code:
1
2
3
4
5
SELECT HIGH_PRIORITY count(*) 
FROM `Bedrijven` AS `g` 
WHERE g.Land = 'Nederland' AND g.Postcode 
LIKE '%' AND 
MATCH ( g.Bedrijfsnaam ) AGAINST ( '*landbouw*'  IN BOOLEAN MODE )


Je krijgt dan een resultset met maar een record, en een kolom. Die ene kolom bevat het aantal records dat deze filter oplevert.

[ Voor 17% gewijzigd door B-Man op 16-04-2004 21:49 ]


Verwijderd

Topicstarter
Thnx, Het werkt inderdaat! Ik dacht dat de snelheid drastisch zou afnemen. Maar niet :)

Nogmaals bedankt!