我正在尝试组合这五个更新语句。我确信这很简单,但我是 SQL 的新手,无法弄清楚其中的逻辑。
$usqlM1 = "UPDATE tblmaincircles SET mcName= '".$_POST['mcNameM1']."' WHERE mcID='M1';"
$usqlM2 = "UPDATE tblmaincircles SET mcName= '".$_POST['mcNameM2']."' WHERE mcID='M2';";
$usqlM3 = "UPDATE tblmaincircles SET mcName= '".$_POST['mcNameM3']."' WHERE mcID='M3';";
$usqlM4 = "UPDATE tblmaincircles SET mcName= '".$_POST['mcNameM4']."' WHERE mcID='M4';";
$usqlM5 = "UPDATE tblmaincircles SET mcName= '".$_POST['mcNameM5']."' WHERE mcID='M5';";
任何帮助都会很棒。提前致谢!
最佳答案
CASE
语句可以做到这一点。您可以添加一个 where 子句,这样系统就不必评估每条记录并在为 MCID 编制索引时提高性能。
UPDATE tblmaincircle set mcname = case when mcid = 'M1' then 'McNameM1'
when mcid = 'M2' then 'McNameM2'
when mcid = 'M3' then 'McNameM3'
when mcid = 'M4' then 'McNameM4'
when mcid = 'M5' then 'McNameM5' end
where mcid in ('M1','M2','M3','M4','M5');
关于mysql - 合并 SQL 更新语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35093722/