我创建了一个脚本,使用For循环和all自动创建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')我在哪里1
答案 0 :(得分:2)
您使用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
子句中使用案例陈述:
UPDATE table2
SET code2 = CASE WHEN number = 1 THEN 'foo' ELSE 'bar' END
但这并非100%灵活。在有意义的时候使用它。
答案 1 :(得分:2)
我想你需要case statement
UPDATE table2
SET code2= case number when 1 then 'sfvv' when 2 then 'sdvsdv' END
where id = 32
答案 2 :(得分:1)
Update table2
SET code2= CASE
WHEN number=1 THEN 'sfvv'
WHEN number=2 THEN 'sdvsdv'
ELSE code2
END
WHERE id = 32
希望有所帮助