如何将MySql中的查询更新为我的Custome String

时间:2017-05-25 18:31:35

标签: mysql sql mysqli yii2

如何将Mysql更新到我的Custome字符串

我使用此查询为用户的任何博客查找Num帖子。

我有14K用户和500K Post。

示例我使用userId 152。

SELECT
  user.email,
  user.`id`,
  post.`blog_id`,
  post.domain,
  post.`user_id`,
  COUNT(*)
FROM
  `user`
  INNER JOIN post
    ON post.`user_id` = user.id
    WHERE user.id = 152
GROUP BY post.`blog_id`

结果:

    id  blog_id  user_id  COUNT(*)  
------  -------  -------  ----------
   152      152      152         105
   152      170      152          41
   152      222      152           6
   152    23552      152         104
   152    24053      152           5
   152    27567      152           7

但我需要更新用户表>字段numPost到此字符串

({"blog Id": "num of post"}) => `({"152":105,"170":41,"222":6,"23552":104,"24053":5,"27567":7})`

1 个答案:

答案 0 :(得分:0)

假设您的json格式为

'{"152":105,"170":41,"222":6,"23552":104,"24053":5,"27567":7}';

你可以解码

$myArray = json_decode('{"152":105,"170":41,"222":6,"23552":104,"24053":5,"27567":7}');

并遍历数组

foreach ( $myArray as $key =$value){
     $connection->createCommand()->update('user', 
                    ['blod_id' => $value],['id' => $key])->execute();
}