2009-12-09 4 views
12

Tôi có truy vấn sau đâyselect count và hồ sơ khác trong một truy vấn đơn

select main_cat_name,cat_url from mf_main order by main_cat_name 

này trả toàn bộ dữ liệu của table.Now của tôi tôi muốn có đếm tổng dãy table.I điều này có thể làm điều đó bằng cách sử dụng truy vấn khác nhưng làm cách nào tôi có thể sử dụng chúng trong một truy vấn ???

Tôi muốn hai dữ liệu ONE: - các hàng của bảng HAI: - số lượng làm thế nào tôi có thể có trong một truy vấn đơn

tôi đã cố gắng này, nhưng nó mang lại cho đếm đúng nhưng chỉ hiển thị dòng đầu tiên của bảng:

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

nếu bạn đang làm việc với php, nó hiện công việc cho bạn .. – yoda

+0

không ngay cả trong php nó không làm những gì tôi muốn :-( – developer

Trả lời

14

Bạn có thể thử với Nhóm bằng như:

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

giải pháp phải tôi hy vọng:

Đây là những gì bạn muốn :)

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 

Nếu bạn sử dụng mysql u có "là" giống như tôi đã làm. Đối với những người khác db sẽ vắng mặt như (như oracle)

+0

yess đây là những gì tôi muốn .. cảm ơn! – developer

+0

Bạn nên kiểm tra của tôi như là trả lời nếu nó đã giúp :). Cảm ơn –

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

điều này đang cho đếm 1 cho mỗi cat_name – developer

1

Bạn có thể thử

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

Không chắc chắn nếu MySQL chấp nhận AS, chỉ cần loại bỏ nó nếu nó không.

+1

không hoạt động trên mysql .. "over()" không được chấp nhận –

0

Nếu bạn không sử dụng WHERE truy vấn và không giới hạn đầu ra theo cách khác, như sử dụng GROUP BY, số lượng hàng trong kết quả sẽ khớp với số lượng hàng trong bảng, vì vậy bạn có thể sử dụng các phương pháp cụ thể của trình điều khiển cơ sở dữ liệu để tìm số hàng, ví dụ mysql_num_rows trong PHP

0

Một khi bạn đã tạo ra một tuyên bố chọn

đã có một kỷ lục NUM_ROWS đếm của bạn như NUM_ROWS