select u.org_id as orgId, u.mobile, o.org_name as orgName from djd_user u inner join sys_org o on u.org_id = o.org_id; 这条SQL能不能改成判断当o.org_name等于指定值时修改u.mobile等于'***'
时间: 2024-04-04 14:35:57 浏览: 17
可以使用以下SQL语句来实现:
UPDATE djd_user u
SET u.mobile = '***'
WHERE u.org_id IN (
SELECT o.org_id
FROM sys_org o
WHERE o.org_name = '指定值'
);
这个SQL语句会在sys_org表中查找org_name等于指定值的记录,并使用INNER JOIN将其与djd_user表中的记录关联。然后使用UPDATE语句将djd_user表中所有org_id等于sys_org表中org_id的记录中mobile字段的值修改为'***'。
相关问题
select u.org_id orgId, u.user_id userId, u.show_order showOrder, u.email, u.status, u.photo, u.lsc, u.office_phone officePhone, u.logon_name logonName, u.global_status globalStatus, u.job_type jobType, u.sex, u.is_mobile_open isMobileOpen, u.job_status jobStatus, u.is_district_leader isDistrictLeader, u.is_mobile_plate_open isMobilePlateOpen, u.user_name userName, u.update_time updateTime, u.is_job_record_tj isJobRecordTj, u.user_job_id userJobId, u.job_position jobPosition, u.old_user_id oldUserId, u.is_home_phone_open isHomePhoneOpen, u.mobile, u.user_res_dep userResDep, u.flag, u.anno, u.is_del isDel, o.org_name orgName from djd_user u inner join sys_org o on u.org_id = o.org_id这样返回到MAP中显示的key都是小写的是为什么?
这是因为在 SQL 查询中使用了小写的列名,导致返回结果中的列名也是小写的。如果想要返回大写的列名,可以在 SQL 查询中使用 AS 关键字来指定别名,例如:
```
SELECT u.org_id AS orgId, u.user_id AS userId, ...
```
这样返回的结果中,列名就会使用别名中指定的大小写形式。
select * from djd_user u where u.org_id in(#{orgId}),orgId内容为"2036E40E9EC74214A3434FFAB2038A62,33F43D7F57AB47AC981C6BC0D96546F9",查询结果是否会有问题
这个SQL语句在orgId中只有一个值时会正常执行,但是在orgId中有多个值时,会抛出异常,因为在SQL语句中只能使用一个参数占位符,而不是多个参数值的列表。
正确的写法应该是使用IN关键字后面跟着多个参数占位符,例如:
```
SELECT * FROM djd_user u WHERE u.org_id IN (?,?,?)
```
然后在Java代码中使用PreparedStatement来设置参数值。