[mySQL 3.23] Totaal aantal results

Pagina: 1
Acties:

  • BetuweKees
  • Registratie: Januari 2003
  • Laatst online: 15-05 20:44

BetuweKees

Flipje uit Tiel

Topicstarter
ben even de weg kwijt geloof ik.. wil graag zoeken door database, totaal aantal results weergeven samen met bepaaalde velden uit tabel
heb nu een query die een beetje lijkt op volgende

code:
1
2
3
4
5
6
7
8
9
SELECT 
    COUNT(*) AS total, 
    a.id, a.b 
FROM 
    a 
WHERE 
    a.b LIKE '%c%' 
LIMIT 
    0, 10;


probleem is dat zodra ik COUNT() ga gebruiken mysql vindt dat ik een GROUP BY moet gebruiken. Gebruik ik echter een GROUP BY op a.id dan krijg ik niet meer het totaal aantal hits, maar het aantal hits per a.id en dat is weer niet de bedoeling. Normaal zou iets als mysql_num_rows een optie zijn, maar omdat ik natuurlijk ook LIMIT gebruik zal dit aantal nooit groter dan 10 worden, dus dit heeft niet echt veel zin als ik een totaal zoek..

iemand die weet hoe ik dit op kan lossen?

Through meditation I program my heart to beat breakbeats and hum basslines on exhalation -Blackalicious || *BetuweKees was AFK; op de fiets richting China en verder


  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 18:08

gorgi_19

Kruimeltjes zijn weer op :9

Erhm.... Kan niet wat jij wilt? :?

Als er geen relatie is tussen total en a.id, dan zal dit ook niet in 1 resultset kunnen zonder subqueries.

[ Voor 65% gewijzigd door gorgi_19 op 06-12-2003 13:14 ]

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • foske
  • Registratie: Juli 2001
  • Laatst online: 26-05 10:03
idd, het gegeven totaal aantal records komt maar 1x terug, daarvoor maak je dus een aparte resultset aan, eventueel met andere gegevens die maar 1x terug komt. En dan een volgende resultset waarin je de results stopt, dan komt het goed

  • BetuweKees
  • Registratie: Januari 2003
  • Laatst online: 15-05 20:44

BetuweKees

Flipje uit Tiel

Topicstarter
Fossie schreef op 06 december 2003 @ 13:43:
idd, het gegeven totaal aantal records komt maar 1x terug, daarvoor maak je dus een aparte resultset aan, eventueel met andere gegevens die maar 1x terug komt. En dan een volgende resultset waarin je de results stopt, dan komt het goed
aan die optie had ik ook al gedacht, maar dan wil dat dus zeggen dat ik bijna mijn hele query (inclusief vrij veel joins en een uitgebreide where) twee maal moet uitvoeren. ben een beetje bang voor de redunantie die ik hier bij creeer, dus vroeg me af of het ook in een query kon.. maar goed, als het niet kan, dan maar reduntatie.. :/

Through meditation I program my heart to beat breakbeats and hum basslines on exhalation -Blackalicious || *BetuweKees was AFK; op de fiets richting China en verder


  • eborn
  • Registratie: April 2000
  • Laatst online: 27-05 12:34
Nieuwe MySQL versies hebben hiervoor een extra snufje, zodat je bij de query kunt opgeven dat je toch het totale aantal resultaten terug wilt krijgen (dus het aantal voordat de limit optreedt). Maar goed, dan moet je dus MySQL 4.x gaan draaien en ik weet niet of dat mogelijk is.

Je kunt eens zoeken op SQL_CALC_FOUND_ROWS.