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