Mysql 基于WHERE子句中变量中的值更新记录
我尝试执行此查询并获取错误代码:1175 use正在使用安全模式,您试图在不使用where子句的情况下更新表Mysql 基于WHERE子句中变量中的值更新记录,mysql,sql,Mysql,Sql,我尝试执行此查询并获取错误代码:1175 use正在使用安全模式,您试图在不使用where子句的情况下更新表 set @email = 'foo@bar.com'; set @id = ( SELECT u.id FROM user u WHERE u.email_id = @email ); UPDATE user SET date_of_birth = '1985-10-01' WHERE id = @id; 这就是问题所在 set @email = 'foo@
set @email = 'foo@bar.com';
set @id =
(
SELECT u.id
FROM user u
WHERE u.email_id = @email
);
UPDATE user SET date_of_birth = '1985-10-01'
WHERE id = @id;
这就是问题所在
set @email = 'foo@bar.com';
UPDATE user SET date_of_birth = '1985-10-01'
WHERE email_id = @email;
我不想禁用安全模式。由于您不想在MySQL Workbench中禁用安全模式,您可能需要调整查询,以便在where子句中使用主键
set @email = 'foo@bar.com';
set @id =
(
SELECT u.id
FROM user u
WHERE u.email_id = @email
);
UPDATE user SET date_of_birth = '1985-10-01'
WHERE id = @id;
或直接:
SET @id = 42;
UPDATE user SET date_of_birth = '1985-10-01'
WHERE id = @id;
或者,暂时禁用安全模式(这是我将选择的选项):
在where子句中使用PK在工作台上尝试吗?是的,在where clauseEyes@Abdulrehmansheikh中使用PK你在where子句中尝试过使用PK吗?如果我使用第二个解决方案,我将返回错误代码:1093。无法在中为更新指定目标表“用户”clause@RajatVerma我更改了第一个查询