[英]adding a condition to a WHERE clause based on a passed variable value mysql
[英]Updating record based on the value in variable in WHERE clause
我正在嘗試執行此查詢並獲取錯誤代碼:1175 使用正在使用安全模式並且您嘗試在沒有 where 子句的情況下更新表。
這是查詢
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;
或者,暫時禁用安全模式(這是我選擇的選項):
set @email = 'foo@bar.com';
SET SQL_SAFE_UPDATES = 0;
UPDATE user SET date_of_birth = '1985-10-01'
WHERE email_id = @email;
SET SQL_SAFE_UPDATES = 1;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.