在尝试修改一个表中的多条数据时,如果使用循环来执行多条SQL会消耗更长的时间
例如用户表users
需要更新字段a
,将id为1的字段a
修改为50
,同时将id为2的字段a
修改为100
可以尝试使用下面的方法
$arr = [
[
"id" => 1,
"a" => 50,
],
[
"id" => 2,
"a" => 100
]
];
$sql = "UPDATE users SET a = CASE id";
for ($a = 0; $a < count($arr); $a++) {
$sql .= ' WHEN ' . $arr[$a]['id'] . ' THEN ' . $arr[$a]['a'];
}
$sql .= ' ELSE a END';
Db::query($sql);//执行SQL
//sql语句
UPDATE users
SET a = CASE id
WHEN 1 THEN 50
WHEN 2 THEN 100
ELSE 默认
END
公式
UPDATE 表名
SET 字段名 = CASE 条件字段名
WHEN 条件值 THEN 修改值
WHEN 条件值 THEN 修改值
END
你这个游客的缓存时间有点短,我上个月评论过,这次评论还要我填写资料,太不方便了
大佬,你的那个wxfans插件生成的api.php文件没有内容了,不知道咋回事。求解。