·设为首页收藏本站📧邮箱修改🎁免费下载专区📒收藏夹👽聊天室📱AI智能体
返回列表 发布新帖

[已处理] Discuz!新增 允许用户浏览个人资料页需要升级的数据库语句

311 2
发表于 2021-7-19 11:33:15 | 查看全部 阅读模式

马上注册,免费下载更多dz插件网资源。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
Discuz!新增 允许用户浏览个人资料页需要升级的数据库语句:
  1. ALTER TABLE `pre_common_usergroup_field` ADD `allowviewprofile` tinyint(1) unsigned NOT NULL DEFAULT '0' AFTER `allowviewprofile`;

  2. UPDATE `pre_common_usergroup_field` SET `allowviewprofile` = '1' WHERE `pre_common_usergroup_field`.`groupid` = 1;
  3. UPDATE `pre_common_usergroup_field` SET `allowviewprofile` = '1' WHERE `pre_common_usergroup_field`.`groupid` = 2;
  4. UPDATE `pre_common_usergroup_field` SET `allowviewprofile` = '1' WHERE `pre_common_usergroup_field`.`groupid` = 3;
  5. UPDATE `pre_common_usergroup_field` SET `allowviewprofile` = '0' WHERE `pre_common_usergroup_field`.`groupid` = 4;
  6. UPDATE `pre_common_usergroup_field` SET `allowviewprofile` = '0' WHERE `pre_common_usergroup_field`.`groupid` = 5;
  7. UPDATE `pre_common_usergroup_field` SET `allowviewprofile` = '0' WHERE `pre_common_usergroup_field`.`groupid` = 6;
  8. UPDATE `pre_common_usergroup_field` SET `allowviewprofile` = '0' WHERE `pre_common_usergroup_field`.`groupid` = 7;
  9. UPDATE `pre_common_usergroup_field` SET `allowviewprofile` = '0' WHERE `pre_common_usergroup_field`.`groupid` = 8;
  10. UPDATE `pre_common_usergroup_field` SET `allowviewprofile` = '0' WHERE `pre_common_usergroup_field`.`groupid` = 9;
  11. UPDATE `pre_common_usergroup_field` SET `allowviewprofile` = '1' WHERE `pre_common_usergroup_field`.`groupid` = 10;
  12. UPDATE `pre_common_usergroup_field` SET `allowviewprofile` = '1' WHERE `pre_common_usergroup_field`.`groupid` = 11;
  13. UPDATE `pre_common_usergroup_field` SET `allowviewprofile` = '1' WHERE `pre_common_usergroup_field`.`groupid` = 12;
  14. UPDATE `pre_common_usergroup_field` SET `allowviewprofile` = '1' WHERE `pre_common_usergroup_field`.`groupid` = 13;
  15. UPDATE `pre_common_usergroup_field` SET `allowviewprofile` = '1' WHERE `pre_common_usergroup_field`.`groupid` = 14;
  16. UPDATE `pre_common_usergroup_field` SET `allowviewprofile` = '1' WHERE `pre_common_usergroup_field`.`groupid` = 15;
  17. UPDATE `pre_common_usergroup_field` SET `allowviewprofile` = '1' WHERE `pre_common_usergroup_field`.`groupid` = 16;
  18. UPDATE `pre_common_usergroup_field` SET `allowviewprofile` = '1' WHERE `pre_common_usergroup_field`.`groupid` = 17;
  19. UPDATE `pre_common_usergroup_field` SET `allowviewprofile` = '1' WHERE `pre_common_usergroup_field`.`groupid` = 18;
  20. UPDATE `pre_common_usergroup_field` SET `allowviewprofile` = '1' WHERE `pre_common_usergroup_field`.`groupid` = 19;
复制代码


我要说一句 收起回复
一花一世界,一叶一追寻。一曲一场叹,一生为一人。

评论2

Discuz智能体Lv.8 发表于 2025-3-18 07:16:18 | 查看全部
你提供的SQL语句是为了在Discuz!中新增一个允许用户浏览个人资料页的权限控制字段 `allowviewprofile`,并为不同的用户组设置默认值。不过,你的SQL语句中有一些小问题需要修正:

1. **`ALTER TABLE` 语句中的 `AFTER` 子句**:你在 `AFTER` 子句中引用了 `allowviewprofile` 字段,但这个字段是你要新增的字段,因此不能引用它自己。你可以选择将这个字段添加到某个现有字段之后,或者直接省略 `AFTER` 子句。

2. **`UPDATE` 语句**:你为不同的用户组设置了 `allowviewprofile` 的值,但你可以通过一个更简洁的 `CASE` 语句来一次性完成这些更新。

以下是修正后的SQL语句:

  1. -- 新增 allowviewprofile 字段
  2. ALTER TABLE `pre_common_usergroup_field` ADD `allowviewprofile` tinyint(1) unsigned NOT NULL DEFAULT '0';

  3. -- 更新 allowviewprofile 字段的值
  4. UPDATE `pre_common_usergroup_field`
  5. SET `allowviewprofile` = CASE
  6.     WHEN `groupid` IN (1, 2, 3, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19) THEN 1
  7.     ELSE 0
  8. END;
复制代码


### 解释:
1. **`ALTER TABLE` 语句**:新增了一个 `allowviewprofile` 字段,类型为 `tinyint(1)`,默认值为 `0`,表示默认不允许浏览个人资料页。

2. **`UPDATE` 语句**:使用 `CASE` 语句来根据 `groupid` 的值设置 `allowviewprofile` 字段的值。`groupid` 为 1、2、3、10、11、12、13、14、15、16、17、18、19 的用户组会被设置为允许浏览个人资料页(`allowviewprofile = 1`),其他用户组则不允许(`allowviewprofile = 0`)。

### 注意事项:
- 在执行这些SQL语句之前,请确保你已经备份了数据库,以防止出现意外情况。
- 如果你有自定义的用户组,可能需要根据实际情况调整 `groupid` 的值。

如果你有其他问题或需要进一步的帮助,请随时提问!
-- 本回答由 人工智能 AI智能体 生成,内容仅供参考,请仔细甄别。
我要说一句 收起回复
Discuz智能体Lv.8 发表于 5 天前 | 查看全部
你提供的SQL语句是为了在Discuz!中新增一个允许用户浏览个人资料页的权限控制字段 `allowviewprofile`,并为不同的用户组设置默认值。不过,你的SQL语句中有一些小问题需要修正。

### 1. `ALTER TABLE` 语句的问题
在 `ALTER TABLE` 语句中,`AFTER` 子句后面跟的字段名应该是你想要将新字段添加在哪个字段之后。你当前的语句中 `AFTER` 子句后面跟的是 `allowviewprofile`,这会导致语法错误,因为 `allowviewprofile` 字段还没有被创建。

正确的 `ALTER TABLE` 语句应该是将新字段添加在某个已存在的字段之后,比如 `allowview` 或其他字段。

### 2. `UPDATE` 语句的问题
`UPDATE` 语句是正确的,但你可以通过 `CASE` 语句来简化这些 `UPDATE` 语句,减少重复代码。

### 修正后的SQL语句如下:

  1. -- 添加 allowviewprofile 字段到 pre_common_usergroup_field 表
  2. ALTER TABLE `pre_common_usergroup_field` ADD `allowviewprofile` tinyint(1) unsigned NOT NULL DEFAULT '0' AFTER `allowview`;

  3. -- 使用 CASE 语句一次性更新所有用户组的 allowviewprofile 字段
  4. UPDATE `pre_common_usergroup_field`
  5. SET `allowviewprofile` = CASE
  6.     WHEN `groupid` IN (1, 2, 3, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19) THEN 1
  7.     ELSE 0
  8. END;
复制代码


### 解释:
1. **ALTER TABLE**: 将 `allowviewprofile` 字段添加到 `pre_common_usergroup_field` 表中,并将其放置在 `allowview` 字段之后。
2. **UPDATE**: 使用 `CASE` 语句一次性更新所有用户组的 `allowviewprofile` 字段。`groupid` 为 1, 2, 3, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19 的用户组会被设置为 `1`,其他用户组会被设置为 `0`。

### 注意事项:
- 在执行这些SQL语句之前,请确保你已经备份了数据库,以防止意外情况发生。
- 如果你不确定 `pre_common_usergroup_field` 表的结构,可以先使用 `DESCRIBE pre_common_usergroup_field;` 查看表结构,确保 `allowview` 字段存在。

如果你有其他关于Discuz!开发的问题,欢迎继续提问!
-- 本回答由 人工智能 AI智能体 生成,内容仅供参考,请仔细甄别。
我要说一句 收起回复

回复

 懒得打字嘛,点击右侧快捷回复【查看最新发布】   【应用商城享更多资源】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

AI智能体
投诉/建议联系

discuzaddons@vip.qq.com

未经授权禁止转载,复制和建立镜像,
如有违反,按照公告处理!!!
  • 联系QQ客服
  • 添加微信客服

联系DZ插件网微信客服|最近更新|Archiver|手机版|小黑屋|DZ插件网! ( 鄂ICP备20010621号-1 )|网站地图 知道创宇云防御

您的IP:18.117.186.60,GMT+8, 2025-3-26 18:27 , Processed in 0.377860 second(s), 82 queries , Gzip On, Redis On.

Powered by Discuz! X5.0 Licensed

© 2001-2025 Discuz! Team.

关灯 在本版发帖
扫一扫添加微信客服
QQ客服返回顶部
快速回复 返回顶部 返回列表