2009-12-09 5 views
12

Ich habe die folgende Abfrageselect count und anderen Datensätzen in einer einzigen Abfrage

select main_cat_name,cat_url from mf_main order by main_cat_name 

Dies gibt ganze Daten meiner table.Now i Zählung der Gesamt Zeilen dieser table.I haben möchte, kann es tun eine andere Abfrage verwenden, aber wie kann ich sie in einer einzigen Abfrage verwenden?

Ich möchte zwei Daten ONE - die Zeilen der Tabelle zwei: - die Zählung Wie kann ich das

einzelne Abfrage haben

Ich habe versucht, dies in einem, aber es richtig zählen, sondern zeigt gibt nur erste Zeile der Tabelle:

select count(cat_id),main_cat_name,cat_url from mf_main order by main_cat_name 
+0

wenn man mit PHP zu tun hat, ist es für Sie den Job .. – yoda

+0

keine sogar in php ist es nicht zu tun, was ich will :-( – developer

Antwort

14

Sie mit Gruppierungs wie versuchen:

SELECT count(cat_id), main_cat_name, cat_url FROM mf_main GROUP BY main_cat_name, cat_url ORDER BY main_cat_name 

richtige Lösung ich hoffe:

Dies ist, was Sie wollen :)

SELECT x.countt, main_cat_name, cat_url FROM mf_main, (select count(*) as countt FROM mf_main) as x ORDER BY main_cat_name 

Wenn Sie mysql verwenden u haben "wie" wie ich es tat. Für andere db sein können, ohne als (wie Orakel)

+0

yess das ist was ich wollte..danke! – developer

+0

Sie sollten mir als Antwort überprüfen, wenn es geholfen hat :). Danke –

1
select count(cat_id), main_cat_name, cat_url 
from mf_main 
group by main_cat_name, cat_url 
order by main_cat_name 
+0

das gibt Count 1 für jeden cat_name – developer

1

Sie könnten versuchen,

select main_cat_name,cat_url, 
COUNT(*) OVER() AS total_count 
from mf_main 
order by main_cat_name 

Nicht sicher, ob MySQL die AS akzeptiert, nur um es zu entfernen, wenn es nicht der Fall ist.

+1

funktioniert nicht auf mysql .. "over()" nicht akzeptiert –

0

Wenn Sie die WHERE-Abfrage nicht verwenden und die Ausgabe nicht auf andere Weise begrenzen, z. B. GROUP BY, dann entspricht der Zeilenbetrag im Ergebnis dem Zeilenbetrag in der Tabelle, sodass Sie datenbanktreiberspezifische Methoden verwenden können um die Zeilenanzahl zu finden, z mysql_num_rows in PHP

0

Wenn Sie bereits eine select-Anweisung

gibt es bereits eine num_rows Aufzeichnung Ihrer Zählung als num_rows

Verwandte Themen