[ Tudfa @ 18.05.2009. 20:23 ] @
| Pozdrav !
Imam sledeći upit :
Code: SELECT
t1.*,
t2.name,
IF(ROUND(AVG(t3.grade),2)IS NULL,0,ROUND(AVG(t3.grade),2)) AS grade,
COUNT(t3.jid) AS votes
FROM t1
INNER JOIN t2 ON t1.cat_id=t2.id
INNER JOIN t3 ON jokes.id=t3.joke_id
WHERE (t1.approved_by IS NOT NULL)
GROUP BY t1.id
HAVING grade >8
LIMIT 0,5
Hoću da pre ovoga izvršim jedan upit koji će izbrojati rezultate po datim kriterijumima i vratiti kao rezultat broj zapisa.
Ovo mi treba zbog paginacije, tj. neću da mi vrati sve zapise kao u ovom upitu gore,
nego mi treba da prvo izbrojim a onda prikažem samo prvih n.
Ja sam ovako rešio to, ali mi i dalje deluje da može bolje, pa ako može neki hint...
Code: SELECT COUNT(*) AS br_zapisa FROM (SELECT
IF(ROUND(AVG(t3.grade),2)IS NULL,0,ROUND(AVG(t3.grade),2)) AS grade
FROM t1
INNER JOIN t2 ON t1.cat_id=t2.id
INNER JOIN t3 ON t1.id=t3.joke_id
WHERE (t1.approved_by IS NOT NULL)
GROUP BY t1.id
HAVING grade >8
)AS rezultat
[Ovu poruku je menjao Tudfa dana 18.05.2009. u 21:38 GMT+1] |
[ bogdan.kecman @ 18.05.2009. 23:16 ] @
http://dev.mysql.com/doc/refman/5.1/en/select.html
http://dev.mysql.com/doc/refma...tions.html#function_found-rows
Citat:
SQL_CALC_FOUND_ROWS tells MySQL to calculate how many rows there would be in the result set, disregarding any LIMIT clause. The number of rows can then be retrieved with SELECT FOUND_ROWS().
Code:
mysql> SELECT SQL_CALC_FOUND_ROWS * FROM tbl_name
-> WHERE id > 100 LIMIT 10;
mysql> SELECT FOUND_ROWS();
jasno? ili da idem u detalje?
[ Tudfa @ 18.05.2009. 23:55 ] @
Sve više mi se svidja MySQL, kao i ovaj MySQL forum ... Probaću ovo ujutro kad ustanem, mislim da neće biti
potrebe za detaljima, ovo je ono što sam tražio. Hvala najlepše !!
[ bogdan.kecman @ 19.05.2009. 10:34 ] @
kada shvatis da je mysql 5.0/5.1 malo drugaciji od onoga sto je bio mysql 3.23 mnoge stvari dodju na mesto :) ... ne mislim licno ti, vec, generalno ljudi koji ga nisu koristili od tada .. (tada nije bilo nista ovih normalnih funkcija, stranih kljuceva, unija, subselect-a .. nisi mogao nista kompleksnije od obicnog upita da uradis) ... 5.1 je ozbiljan rdbms sa kompletnom funkcionalnoscu db servera ... naravno, fali mu stosta, i ima ponesto sto drugi nemaju ... ali vrlo koristan i upotrebljiv sistem...
pored same baze, obrati paznju da mysql ima odlicnu dokumentaciju ... :) koja u 80% slucajeva daje odgovor na postavljeno pitanje
Copyright (C) 2001-2025 by www.elitesecurity.org. All rights reserved.