item.user_audit_status === 0 || item.user_audit_status === 1优化一下这个代码
时间: 2023-10-04 17:09:51 浏览: 148
可以使用Array.includes()方法来简化这段代码。可以将0和1作为参数传递给includes()方法,这将返回一个布尔值,指示数组中是否包含这些值。因此,可以将代码简化为以下内容:
```
[0, 1].includes(item.user_audit_status)
```
这将返回一个布尔值,指示item.user_audit_status是否为0或1。
相关问题
帮我完善下面的sql查询: SELECT sd.dept_name, SUM(audit.score) FROM sys_dept AS sd, sys_user AS su, audit WHERE sd.dept_id = su.dept_id AND su.user_name = audit.create_by AND audit.`status`='1' AND audit.create_by IN ( SELECT su.user_name FROM sys_user AS su WHERE su.user_id IN ( SELECT sur.user_id FROM sys_user_role AS sur WHERE sur.role_id = ( SELECT role_id FROM sys_role AS sr WHERE sr.role_key = #{roleKey}))) GROUP BY sd.dept_name
这个 SQL 查询的语句已经相当完整,不过缺少一个参数 `roleKey`,需要你在使用时传入具体的值。这个查询语句的作用是查询指定角色下的所有用户所在的部门名称以及其对应的考核总分数,其中:
- `sys_dept` 表代表部门信息,`dept_name` 代表部门名称,`dept_id` 代表部门 ID;
- `sys_user` 表代表用户信息,`user_name` 代表用户名,`dept_id` 代表用户所在的部门 ID;
- `audit` 表代表考核信息,`create_by` 代表考核记录的创建者(即用户的用户名),`score` 代表考核分数,`status` 代表考核记录的状态;
- `sys_user_role` 表代表用户角色关系,`user_id` 和 `role_id` 分别代表用户 ID 和角色 ID;
- `sys_role` 表代表角色信息,`role_key` 代表角色关键字,与传入的参数 `roleKey` 相对应。
如果你想查询某个角色下的所有用户在考核中的得分情况,可以将 `roleKey` 替换为相应的关键字,例如 `'manager'`。
SELECT DISTINCT p.*, u1.id AS directorId, CASE WHEN up1.member_type = 348 THEN u1.nickname ELSE up1.member_name END AS directorName FROM project p LEFT JOIN userproject up1 ON p.p_id=up1.p_id AND up1.director=1 LEFT JOIN sys_user u1 ON up1.member_id = u1.id LEFT JOIN userproject up ON p.p_id=up.p_id LEFT JOIN sys_user u ON up.member_id = u.id LEFT JOIN sys_user_department d ON d.user_id = u.id WHERE (p.enable = ? AND p.audit_status = ? AND p.organization_id = ? AND p.project_name IS NOT NULL) GROUP BY p.project_name,p.project_code,p.project_nature ORDER BY p.p_id DESC报错Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggregated column 'spms.p.p_id' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by怎么处理
这是因为 MySQL 的 sql_mode 设置了 only_full_group_by,导致在 GROUP BY 子句中未包含的列不能在 SELECT 子句中使用。可以尝试以下两种处理方式:
1. 修改 sql_mode
将 MySQL 的 sql_mode 修改为不包含 only_full_group_by 这个选项,可以在 MySQL 配置文件 my.cnf 或者 my.ini 中找到 sql_mode 选项,将其修改为:
```
sql_mode=NO_ENGINE_SUBSTITUTION
```
然后重启 MySQL 服务即可生效。
2. 修改查询语句
在 SELECT 子句中将非聚合列 p.p_id 改为聚合列,例如使用 MAX(p.p_id)。修改后的查询语句如下:
```
SELECT DISTINCT MAX(p.p_id) AS p_id, p.project_name, p.project_code, p.project_nature, u1.id AS directorId, CASE WHEN up1.member_type = 348 THEN u1.nickname ELSE up1.member_name END AS directorName
FROM project p
LEFT JOIN userproject up1 ON p.p_id=up1.p_id AND up1.director=1
LEFT JOIN sys_user u1 ON up1.member_id = u1.id
LEFT JOIN userproject up ON p.p_id=up.p_id
LEFT JOIN sys_user u ON up.member_id = u.id
LEFT JOIN sys_user_department d ON d.user_id = u.id
WHERE (p.enable = ? AND p.audit_status = ? AND p.organization_id = ? AND p.project_name IS NOT NULL)
GROUP BY p.project_name,p.project_code,p.project_nature
ORDER BY p.p_id DESC
```
阅读全文
相关推荐
![application/x-rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![docx](https://img-home.csdnimg.cn/images/20241231044901.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![-](https://img-home.csdnimg.cn/images/20241226111658.png)
![-](https://img-home.csdnimg.cn/images/20241226111658.png)
![-](https://img-home.csdnimg.cn/images/20241226111658.png)
![-](https://img-home.csdnimg.cn/images/20241226111658.png)
![-](https://img-home.csdnimg.cn/images/20241226111658.png)
![-](https://img-home.csdnimg.cn/images/20241226111658.png)
![-](https://img-home.csdnimg.cn/images/20241226111658.png)
![-](https://img-home.csdnimg.cn/images/20241226111658.png)
![-](https://img-home.csdnimg.cn/images/20241226111658.png)
![-](https://img-home.csdnimg.cn/images/20241226111658.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)