gpt4 book ai didi

mysql - 用循环统计mysql查询的结果数

转载 作者:行者123 更新时间:2023-11-30 23:26:02 25 4
gpt4 key购买 nike

我试图在 mysql 中编写一个循环,以便一个查询的结果通知第二个查询。这是我当前的查询集:

 select @post_date := from_unixtime(post_date)
from posts
where post_date > unix_timestamp('2012-10-20') and nsfw=1;

select @countofpost := count(@post_date);

while @countofpost > 0 DO

select count(*)
from live_sharedata.users
where joined between @post_date and (@post_date + 21600) and joined_site_id="RS";

set @countofpost = @countofpost -1;

end while;

我收到的错误是 [Err] 1064 - 你的 SQL 语法有错误;查看与您的 MySQL 服务器版本对应的手册,了解在 'while @countofpost > 0 DO 附近使用的正确语法。

如有任何想法,我们将不胜感激。

最佳答案

两件事:

  1. 运行 SELECT @post_date; - 它是否向您显示正确的信息? MySQL 中的变量不能包含数组或多个项目。如果您需要变量来保存多个对象,则需要使用 CURSOR
  2. 对于您的select @countofpost := count(@post_date); 查询,您还可以将其重写为SET @countofpost = FOUND_ROWS();FOUND_ROWS() 返回没有 LIMIT 子句时将返回的行数,因此无需在行集中运行 COUNT() 命令。

我相信,您需要使用游标重写查询,因为(我认为)您希望第一个 SELECT @post_date := from_unixtime(post_date) ... 查询返回多个对象。请看Reference Manual's Cursor section获取更多信息。

关于mysql - 用循环统计mysql查询的结果数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13279955/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com