表:
id fid nfid
1 10 44
2 44 5
3 18 8
变量:
$oldid = 44;
$newid = 99;
当前查询:
UPDATE Table SET fid = $newid WHERE fid = $oldid OR nfid = $oldid
这显然将 fid 更新为 $newid,但我希望它更新 fid 或 nfid,以 WHERE 子句中匹配的为准。这是否可以在一次查询中完成,还是必须进行两次更新?
伪 SQL:
UPDATE Table SET fid = $newid OR nfid = $newid WHERE fid = $oldid OR nfid = $oldid
欢迎任何意见。谢谢。
最佳答案
你必须使用IF
,我还添加了引号,以便更好地阅读:
mysql_query("
UPDATE Table
SET
fid = IF (fid = ".$oldid.", ".$newid.", fid),
nfid = IF (nfid = ".$oldid.", ".$newid.", nfid)
";
说明:
如果fid = $oldid
,则执行fid = $newid
,否则将保留值(fid = fid
)
如果nfid = $oldid
,那么它将执行nfid = $newid
,否则它将留下值(nfid = nfid
)
关于php - SQL查询有两个条件,更新匹配的一个,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19567616/