2012-09-02 29 views
2

我需要在我的第一個查詢中獲取我的表格的上半部分,並在下一個查詢中我需要下半部分。Mysql得到表的上半部分然後是表格的下半部分

我試着這樣做的頂部,但它不會工作

SELECT * FROM t_domains WHERE type_domain='radio' ORDER BY 
date_created DESC LIMIT 0, (COUNT(*)/2) 

我需要它作爲兩個查詢我的功能工作。

任何人有任何指針或提示?

回答

3

我建議做2查詢的:

select count(*) from t_domains 

獲得總計數,然後通過使用限制得到你想要的數據和偏移:

select * from t_domains limit count/2 

的頂部和

select * from t_domains offset count/2 

for下半部分......

這種方法給你一種限制查詢在另一種情況下的方法:如果表中包含100萬條記錄呢?

0

這總是有效的。

將計

SELECT COUNT(*) FROM t_domains WHERE type_domain='radio' 

然後使用存儲的計數。

SELECT * FROM t_domains WHERE type_domain='radio' ORDER BY 
date_created DESC LIMIT 0, {$stored_count/2} 
1
對這個 「>」

爲第一半

mysql-> SET @n := 0 

mysql-> SELECT *,nnn FROM (
     SELECT *, @n := @n + 1 AS nnn FROM t_domains ORDER BY date_created 
     ) AS t 
     WHERE nnn <= (SELECT COUNT(date_created)/2 FROM t_domains ) AND type_domain = 'radio' 

對於第二半,改變這裏其中nnn < =此 「<」

相關問題