Mysql获取表的上半部分,然后获取表的下半部分

Mysql获取表的上半部分,然后获取表的下半部分,mysql,Mysql,我需要在第一个查询中获取表的上半部分,在下一个查询中获取下半部分 我试着这样做的顶部,但它不会工作 SELECT * FROM t_domains WHERE type_domain='radio' ORDER BY date_created DESC LIMIT 0, (COUNT(*) / 2) 我需要它作为两个查询,以便我的函数工作 有人有什么建议吗?这总是有效的 存储计数 SELECT COUNT(*) FROM t_domains WHERE type_domain='radio'

我需要在第一个查询中获取表的上半部分,在下一个查询中获取下半部分

我试着这样做的顶部,但它不会工作

SELECT * FROM t_domains WHERE type_domain='radio' ORDER BY 
date_created DESC LIMIT 0, (COUNT(*) / 2)
我需要它作为两个查询,以便我的函数工作

有人有什么建议吗?

这总是有效的

存储计数

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}

我建议做两个查询:

select count(*) from t_domains
要获取总计数,然后使用“限制”和“偏移”获取所需数据,请执行以下操作:

select * from t_domains limit count/2
对于高层和高层

select * from t_domains offset count/2
下半部分

这种方法还提供了一种在另一种情况下限制查询的方法:如果表包含100万条记录怎么办

上半场

 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与MySQL的官方文档一样,LIMIT的两个参数必须都是常量,除了准备好的语句和存储的程序。简单地存储计数,然后在LIMIT子句中使用它似乎并不容易

从8.0版开始,MySQL提供了一个函数,它提供了比其他答案所指出的更简单的解决方案

set@count=从t_域中选择count*/2; 从中选择* 选择*,按日期创建的订单上的行数描述为行数 来自t_域 as t
其中row_num我尝试了此解决方案,但响应为:Undeclared variable:count