[英]Mysql UPDATE WIth Multiple Where statements
我制作了一个脚本,该脚本使用For循环自动创建Update语句,并且全部执行最终结果:
mysql_query("UPDATE table2
SET(code2='sfvv' WHERE number='1'),
(code2='sdvsdv' WHERE number='2')
WHERE id='32'") or die ( mysql_error() );
错误说:您的SQL语法有错误; 检查与您的MySQL服务器版本对应的手册以获取正确的语法以在'(code2 ='sfvv'WHERE number ='1'),((code2 ='sdvsdv'WHERE number ='2')WHERE i'附近使用1
您使用AND
和OR
语句组合条件:
UPDATE table2
SET code2 = 'sfvv'
WHERE
(number = '1'AND code2 = 'sdvsdv')
OR
(number = '2' AND id = '32')
您可以使用逗号分隔语句来更新同一行中的多个值:
UPDATE table2
SET code2 = 'sfvv', code3 = 'abc'
如果需要根据不同条件更新不同的行,则需要执行多个查询:
UPDATE table2 SET code2 = 'sfvv' WHERE id = 1;
UPDATE table2 SET code3 = 'abc' WHERE id = 2;
正如提到的其他答案一样,您也可以在SET
子句中使用case语句:
UPDATE table2
SET code2 = CASE WHEN number = 1 THEN 'foo' ELSE 'bar' END
但这不是100%灵活的。 合理使用它。
我想你需要case statement
UPDATE table2
SET code2= case number when 1 then 'sfvv' when 2 then 'sdvsdv' END
where id = 32
Update table2
SET code2= CASE
WHEN number=1 THEN 'sfvv'
WHEN number=2 THEN 'sdvsdv'
ELSE code2
END
WHERE id = 32
希望能帮助到你
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.