mysql - 合并 SQL 更新语句

标签 mysql sql sql-update

我正在尝试组合这五个更新语句。我确信这很简单,但我是 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/

相关文章:

java - 在 Java 中从 MySQL 获取元数据

sql - 请求不是由文本决定的

用于按列选择系列中第一个的 SQL 查询

MySQL:从子查询结果更新表列

sql - 使用另一个表的列值更新表中的所有列值(通过外键关联)

java mongodb更新特定于数组

MySQL 结果排序不正确?在子查询中排序

mysql - phpMyAdmin 错误 1932 - 表在引擎中不存在

mysql - 如何在mysql命令客户端中知道mysql变量是系统变量还是用户定义的var?

sql - 将 varchar 转换为 bigint 并仅返回大于特定数字的结果?