MySQL 如何更改某一用户及伞下成员的path
MySQL 如何更改某一用户及伞下成员的path
在有的系统中,推荐关系的维护不只是pid那么简单,为了某些业务,可能还会需要维护path字段,path字段的存在,优点在于查询方便,最起码不用递归了,缺点呢就是不好维护,比如说要修改某一用户的上级,该用户底下还有很多的下级,比如一级下级,二级下级等等,所以如果真遇到这种情况,该怎么办呢,这里记录了一种方法(如有更好的,欢迎评论交流)
一、先更改当前用户的pid和path
1、因为更改上级,当前用户的pid和path肯定都会修改的,pid简单,值就是新的pid,path也简单,就是新上级的path再拼上新上级的id
$time = time();
$new_path = $puser['path'] ? $puser['path'].'-'.$puser['id'] : $puser['id'];//当前用户以及其下面用户的path
Db::name('member')->where('id',$user['id'])->update([
'pid'=>$puser['id'],
'path'=>$new_path,
'update_time'=>$time,
]);
二、再更改伞下成员的path
这里区分两种情况:
1、该用户已经绑定了推荐关系,即上级已经形成,取$new_path 再拼上之前的path中截取当前用户id之后的部分,此处以更改1236上级为1183为例
-- select * from zh_member where path like '%1236%'
update zh_member set path = (CONCAT('1183-1236',SUBSTRING_INDEX(path , '' , -1))) where path like '%1236%'
2、该用户pid为0或空,这种简单点,直接取$new_path再拼上之前的path就行看了
$user_id = $user['id'];
$sql = "UPDATE zh_member set path = CONCAT('".$new_path."','-',path),update_time = ".$time." where path like '".$user_id."%'";
//echo $sql;die;
Db::query($sql);
MySQL 如何更改某一用户及伞下成员的path的更多相关文章
- MySQL 在线更改 Schema 工具
MySQL在线更改schema的工具很多,如Percona的pt-online-schema-change. Facebook的 OSC 和 LHM 等,但这些都是基于触发器(Trigger)的,今天 ...
- GitHub 开源的 MySQL 在线更改 Schema 工具【转】
本文来自:https://segmentfault.com/a/1190000006158503 原文:gh-ost: GitHub's online schema migration tool fo ...
- Ansible 从MySQL数据库添加或删除用户
mysql_user - 从MySQL数据库添加或删除用户. 概要 要求(在执行模块的主机上) 选项 例子 笔记 状态 支持 概要 从MySQL数据库添加或删除用户. 要求(在执行模块的主机上) My ...
- MySQL语句详解(用户表、密码、权限、远程)
注: mysql.user表中Host为%的含义 Host列指定了允许用户登录所使用的IP,比如user=root Host=192.168.1.1.这里的意思就是说root用户只能通过192.168 ...
- 【DataBase】更改root根用户密码 和 SQLyog安装
更改root根用户密码 和 SQLyog安装 无密码登录MySQL mysql -u root -p 修改密码与更新加密规则 ALTER USER 'root'@'localhost' IDENTIF ...
- WIN7下更改TFS连接用户的方法
如果你在第一用VS连接TFS的时候,当你输入完用户名和密码并点击保存时,你的用户登录信息就保存在Credential Manager. 你可以到 Control Panel->User Acco ...
- mysql颠覆实战笔记(三)-- 用户登录(二):保存用户操作日志的方法
版权声明:笔记整理者亡命小卒热爱自由,崇尚分享.但是本笔记源自www.jtthink.com(程序员在囧途)沈逸老师的<web级mysql颠覆实战课程 >.如需转载请尊重老师劳动,保留沈逸 ...
- mysql颠覆实战笔记(二)-- 用户登录(一):唯一索引的妙用
版权声明:笔记整理者亡命小卒热爱自由,崇尚分享.但是本笔记源自www.jtthink.com(程序员在囧途)沈逸老师的<web级mysql颠覆实战课程 >.如需转载请尊重老师劳动,保留沈逸 ...
- mysql、添加和删除用户、添加权限
创建用户 mysql>insert into mysql.user(Host,User,Password) values("localhost","tes ...
随机推荐
- Codeforces 437D The Child and Zoo(并查集)
Codeforces 437D The Child and Zoo 题目大意: 有一张连通图,每个点有对应的值.定义从p点走向q点的其中一条路径的花费为途径点的最小值.定义f(p,q)为从点p走向点q ...
- C++入门经典-类成员的可访问性,继承后的可访问性
1:关键字public.private.protected说明类成员是共有的.私有的,还是保护的.这3个关键字将类划分为3个区域,在public区域的类成员可以在类作用域外被访问,而private区域 ...
- 2018-2019-2 20175215 实验三《敏捷开发与XP实践》实验报告
一.实验内容与步骤 1.安装.使用alibaba 插件规范代码 在IDEA的setting中找到plugins并搜索alibaba,点击install进行安装 重启IDEA后,在代码中右击点击编码规约 ...
- ubuntu16.04 anaconda3安装
1.使用清华镜像源下载 wget https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/Anaconda3-5.1.0-Linux-x86_64. ...
- 【南工程开源计划】南京工程学院 信息与通信工程学院 课程设计说明书(论文) 宽带接入技术--WLAN接入设计
文章目录 蓝奏云文件存放地址 一.课程设计目的 二.课程设计要求 三.课程设计网络环境 四.课程设计内容 4.1 WLAN接入设计 4.1.1设计拓扑 4.1.2设计原理 1)WLAN 2)RADIU ...
- vuex 讲解
vuex 状态的管理状态,它采用集中式存储管理应用的所有组件的状态,尤其是在中大型项目,则是很好的开发利器 vuex 的流程图 vuex 的优势: 1. vuex 的存储状态,响应式的 2. 他是所有 ...
- koa 基础(三)路由的另一种写法
1.配置路由 app.js // 引入模块 const Koa = require('koa'); const router = require('koa-router')(); /*引入是实例化路由 ...
- android data binding jetpack I 环境配置 model-view 简单绑定
android data binding jetpack VIII BindingConversion android data binding jetpack VII @BindingAdapter ...
- 一、初识Spring Boot框架
一.搭建Spring Boot环境 1.选择Project,选择Spring Initializr 2.选择Sdk与默认url 3.点击 Next 4.修改一下Group信息和Artifacet,Ne ...
- Spring Bean学习创建及使用<一>
转自:http://glzaction.iteye.com/blog/1299441 Spring中依赖注入有三种注入方式: 一.构造器注入: 二.设值注入(setter方式注入): 三.Feild方 ...