mysql 用户变量 循环_在MySQL中循环创建一个连接变量

博客内容涉及使用H2数据库进行SQL操作,创建wp_ratings表并插入数据,然后展示了一个查询,该查询结合了COUNT和GROUP_CONCAT函数,用于获取特定post_id的评级元数据。虽然代码仅能逐个帖子处理,但为批量更新提供了思路。
摘要由CSDN通过智能技术生成

设置测试数据 h2>

CREATE TABLE `wp_ratings` (

`rating_id` INT(11) NOT NULL AUTO_INCREMENT,

`rating_postid` INT(11) NOT NULL,

`rating_posttitle` TEXT NOT NULL,

`rating_rating` INT(2) NOT NULL,

`rating_timestamp` VARCHAR(15) NOT NULL,

`rating_ip` VARCHAR(40) NOT NULL,

`rating_host` VARCHAR(200) NOT NULL,

`rating_username` VARCHAR(50) NOT NULL,

`rating_userid` INT(10) NOT NULL DEFAULT '0',

PRIMARY KEY (`rating_id`),

KEY `rating_postid` (`rating_postid`)

);

INSERT INTO `test`.`wp_ratings`

(`rating_id`, `rating_postid`, `rating_posttitle`,

`rating_rating`, `rating_timestamp`, `rating_ip`,

`rating_host`, `rating_username`, `rating_userid`)

VALUES

(1,1,'title',1,'abc','127.0.0.1','a.a.a','user_id',1),

(2,2,'title',1,'abc','127.0.0.1','a.a.a','user_id',1),

(3,2,'title',1,'abc','127.0.0.1','a.a.a','user_id',1),

(4,3,'title',1,'abc','127.0.0.1','a.a.a','user_id',1),

(5,3,'title',1,'abc','127.0.0.1','a.a.a','user_id',1),

(6,3,'title',1,'abc','127.0.0.1','a.a.a','user_id',1);

查询 H2>

SET @post_id = 3;

SELECT CONCAT

(

'a:', COUNT(rating_id), ':{',

(

SELECT CONCAT( GROUP_CONCAT(meta_data_vote SEPARATOR ''), '}') FROM

(

SELECT CONCAT

(

'i:',

@curRow := @curRow + 1,

';a:2:{s:7:"',

rating_username,

'";s:1:"0";s:2:"ip";s:9:"',

rating_ip,

'";}'

)AS meta_data_vote

FROM

wp_ratings

JOIN (SELECT @curRow := -1 AS j) r

WHERE rating_postid = @post_id

)AS meta_data_votes

)

) AS new_ratings_meta_data

FROM wp_ratings l

WHERE rating_postid = @post_id

结果(其中@post_id = 3) h2>

a:3:{i:0;a:2:{s:7:"user_id";s:1:"0";s:2:"ip";s:9:"127.0.0.1";}i:1;a:2:{s:7:"user_id";s:1:"0";s:2:"ip";s:9:"127.0.0.1";}i:2;a:2:{s:7:"user_id";s:1:"0";s:2:"ip";s:9:"127.0.0.1";}}

结论 H2>

我无法编写一个返回带有post_ids的结果集及其新meta_data的查询。

以上代码仅在逐个帖子的基础上进行转换。

如果你想批量更新,它需要更多的思考,但我认为这将让你有一个良好的开端。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值