我的编程空间,编程开发者的网络收藏夹
学习永远不晚

mysql多条件多数据更新(thinkphp6)

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

mysql多条件多数据更新(thinkphp6)

遇到了一种情况如下
表大概结构
id-max-all
1— 2—3
前端传来[{“id”=>8,“max”=>“999”},{“id”=>9,“max”=>“1001”}]
需要将前端传来的id中的两个数据更新,将max的值赋给改行的all
这时我想到的是用foreach来遍历数组一条条执行,但是这样做就会执行多句sql,数据少的时候还行多了不就会导致效率极低,我就想一句sql就更新实现
于是我看了这篇博客

http://t.zoukankan.com/gaara-zhang-p-10655144.html

//用一句sql完成://#拼接sql//$rs_max结构[{"id"=>8,"max"=>"999"},{"id"=>9,"max"=>"1001"}]$excute = "UPDATE shangpin SET all = CASE id";//#循环拼接$then_ = "";foreach($rs_max as $value){    $then_ = $then_." WHEN ".@$value['id']." THEN ".@$value['max']." ";}$excute = $excute.$then_;$excute = $excute."END";//#循环拼接$ids ="";foreach($rs_max as $value){    $ids = $ids.@$value["id"].",";}//#去除 “,”$ids =  @substr($ids,0,@strlen($ids)-1);$excute = $excute." WHERE id IN ($ids)";//这里还能使用问号占位符或者命名占位符将变量代替会更安全,例如://这里只是例子,需要自己去拼接条件,我使用的是thinkphp6的Db类下的execute函数来执行原生sqlDb::execute("update think_user set name=:name where status=:status",['name' => 'thinkphp', 'status' => 1]);//最后生成的sql//UPDATE shangpin SET all = CASE id //WHEN 8 THEN 999  //WHEN 9 THEN 1001 END //WHERE id IN (8,9)

来源地址:https://blog.csdn.net/lemon_xhr/article/details/127267931

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

mysql多条件多数据更新(thinkphp6)

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

MySQL怎么批量更新多条数据

要批量更新多条数据,可以使用MySQL的UPDATE语句结合CASE语句来实现。以下是一个示例:假设有一个名为students的表,包含id、name和score字段,现在要将所有分数小于60的学生的分数更新为60。可以使用如下语句来实现
MySQL怎么批量更新多条数据
2024-04-17

mysql怎么更新表中多条数据

要更新表中多条数据,可以使用以下方法:使用 UPDATE 语句来更新多条数据。例如,要将表中所有年龄大于 30 岁的记录的姓名改为 “John”,可以使用以下语句:UPDATE table_nameSET name = 'Joh
mysql怎么更新表中多条数据
2024-04-09

sql如何批量更新多条数据

要批量更新多条数据,可以使用SQL的UPDATE语句结合CASE语句和IN语句来实现。以下是一个示例:假设有一个名为users的表,包含id和status字段,现在需要将status为0的所有用户的状态更新为1,可以使用以下SQL语句:
sql如何批量更新多条数据
2024-04-09

sql怎么批量更新多条数据

在 SQL 中,可以使用 UPDATE 语句来批量更新多条数据。下面是一个示例:```UPDATE 表名SET 列名1 = 值1,列名2 = 值2,...WHERE 条件;```例如,假设有一个名为 `students` 的表,包含 `id
2023-09-16

oracle怎么批量更新多条数据

在Oracle中,要批量更新多条数据可以使用以下方法之一:使用MERGE语句:MERGE语句可以实现插入、更新和删除操作,可以通过将多个update语句合并成一个MERGE语句来实现批量更新多条数据。示例代码如下:MERGE INTO ta
oracle怎么批量更新多条数据
2024-03-04

mysql数据库表的多条件查询

mysql数据库表的多条件查询 一、select语句基本查询 SELECT 字段1,字段2....FROM 表名[WHERE 条件] [LIMIT N][ OFFSET M] select可以返回多条数据也可以返回一条数据如果要查询所有的字
2023-08-22

sql批量更新多条数据报错怎么解决

当 SQL 批量更新多条数据报错时,可以尝试以下几种方法来解决问题:检查 SQL 语句是否正确:首先检查 SQL 语句是否有语法错误或逻辑错误,确保每条更新语句都正确无误。分批更新数据:如果更新的数据量较大,可以考虑将更新操作分批进行,每次
sql批量更新多条数据报错怎么解决
2024-04-08

MySQL 多表关联一对多查询取最新的一条数据

SQL语句  SELECT SQL_CALC_FOUND_ROWS* FROMtableA aLEFT JOIN (SELECTBC.* FROM( SELECT MAX( id ) AS cid FROM tableB GROUP BY code ) ACL
MySQL 多表关联一对多查询取最新的一条数据
2014-05-20

oracle/mysql数据库多条重复数据如何取最新的

目录mysql1、分组取最新的,再用最新的字段连表,回查数据①按分组字段取最新的,通过主键id回表查数据②非主键字段oracle1、原理讲解-可直接看22、在重复数据取最新的3、若要删除不满足条件附:ORACLE 查询某个时间之前的重复数据
oracle/mysql数据库多条重复数据如何取最新的
2024-08-09

mysql多表join时候update更新数据的方法

如果item表的name字段为''就用resource_library 表的resource_name字段前面加上字符串Review更新它,他们的关联关系在表resource_review_link中。
2022-11-21

MySQL怎么查找符合多个条件的数据

要在MySQL中查找符合多个条件的数据,可以使用SELECT语句结合WHERE子句和逻辑运算符(如AND、OR等)来实现。以下是一个示例:假设有一个名为“users”的表,包含“id”、“name”和“age”三个字段,现在要查找年龄大于
MySQL怎么查找符合多个条件的数据
2024-03-06

sql怎么根据条件批量更新数据

在 SQL 中,可以使用 UPDATE 语句根据条件批量更新数据。下面是一个示例:```sqlUPDATE 表名SET 列名1 = 新值1, 列名2 = 新值2, ...WHERE 条件;```在上面的语句中,`表名`是要更新数据的表名,`
2023-08-21

oracle怎么根据条件批量更新数据

要根据条件批量更新数据,可以使用Oracle的UPDATE语句结合WHERE子句来实现。下面是一个更新数据的示例:UPDATE table_nameSET column1 = value1,column2 = value2WHERE
oracle怎么根据条件批量更新数据
2024-03-01

MySQL如何将多条数据合并成一条

本篇内容主要讲解“MySQL如何将多条数据合并成一条”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“MySQL如何将多条数据合并成一条”吧!数据库中存的是多条数据,展示的时候需要合并成一条数据表存
2023-07-05

编程热搜

目录