数据库操作,同时更新多条数据

无论是更新一条或多条数据,先要对更新情况进行分类:

1.只更新一条数据

$where = 1;

$name = Jack;

$db->where(‘id‘,$where)->update([‘name‘,$name]);

2.更新多条数据,更新条件相同

$where = $valid;

$name = Jack;

$db->where(‘valid‘,$where)->update([‘name‘,$name]);

3.更新多条数据,更新条件不同

数据表如图。

(1)若要同时更新‘key‘字段数值为‘2‘,‘3‘,‘4‘的数据,要如何操作呢?

$db->where(‘key‘,‘>=‘,2)->where(‘key‘,‘<=‘,4)->update([‘name‘,Rose]);

(2)若要同时更新‘key‘字段数值为‘1‘,‘5‘的数据,要如何操作呢?

$db->where(‘key‘,‘in‘,[1,5])->update([‘name‘,Rose]);

(3)假使数据表数据量巨大,若要同时更新‘key‘值为1,3,7,8......的数据,要如何操作呢?

$data = array([1]=>Rose,[3]=>Rose,[7]=>Jack,[8]=>Jack......);

foreach($data as $k=>$v){

 $db->where(‘key‘,$k)->update([‘name‘,$v]);

}

时间: 2024-08-01 02:51:05

数据库操作,同时更新多条数据的相关文章

从数据库里随机读取几条数据

从数据库里随机读取几条数据 Access: select top n * from table order by rnd(id)‘id为数据库的自动编号字段 Sql Server: select top n * from table order by newid() MySQL: SELECT * FROM table order by rand() limit  20; Oracle: select * from table order by dbms_random.value()

为什么注册页面刷新一次,数据库就多了一条数据?????

web项目为什么点击注册按钮跳转不到注册页面?(上一篇博客) 从上次注册页面能成功访问之后(上一篇博客),我就开始编写注册页面.最终成功的将用户名和密码插入到数据库中! 但是问题百出!我登录刚刚注册的页面,系统就开始报错了!! nested exception is org.apache.ibatis.exceptions.TooManyResultsException: Expected one result (or null) to be returned by selectOne(), b

经过多次的测试,最终写出了access数据库一次插入多条数据

OleDbConnection inconn = new OleDbConnection("Provider=Microsoft.Jet.OleDb.4.0;Data Source=DB.mdb"); inconn.Open(); OleDbTransaction myTrans = inconn.BeginTransaction(); OleDbCommand incmd = inconn.CreateCommand(); incmd.Transaction = myTrans; s

Android数据库更新&mdash;&mdash;上万条数据的插入

在实际情况下,很可能遇到会向一个表中插入10万条数据,而这样的数据库更新,如果用寻常的方式,在SQLiteOpenHelper.onUpdate()方法中不断的执行SQL语句,那么效率是可想而知的,甚至可能造成整个应用的崩溃! 解决方案: 遇到这种情况,其解决方案应为,用做好的db文件替换之前的数据库文件.当然,有人可能有疑问,这样的话,怎么写入到data/data目录下.这个的确是个问题,可是,我们可以将该数据库存放在SD卡目录下.当然,数据库存放在SD卡目录中,的确是对安全性的妥协. 实现步

【转载】删除数据库中同样的两条数据中的一条

今天要修改一个离职同事写的代码,发现数据库有张表中会莫名其妙出项重复一模一样的两条数据, 由于数据不是很多想在管理工具里面手动删除算了,但是发现删除不掉,感觉像是两条数据关联起来了, 想想应该是管理工具后台逻辑估计也是用语句实现,由于没有主键,更本没法判断我要操作那条数据, 于是就报错了,我真心想吐槽一下这家伙设计的数据库真牛X. 于是就搜到了下面这篇解决方案: http://hi.baidu.com/wangzhiqing99/item/257cc01792e536afffded529

java 将数据库中的每一条数据取出放入数组或者List中

1.如何将数据库中数据按照行(即一整条数据)取出来,存入到数组当中? public static String str = null; // 将StringBuffer转化成字符串 public static StringBuffer sb = new StringBuffer(); // StringBuffer便于字符串的增删改查操作 public static void main(String[] args) { String className = "net.sourceforge.jt

关于sql server远程访问Oracle数据库 OpenQuery查询返回多条数据的问题

在Sql Server远程访问Oracle 中的数据库表时: 远程语法通常为: select * from OpenQuery(Oracle链接服务器名称,‘查询语句’) eg: select * from OPENQUERY(QTX,'select * from student') 有些情况下只会返回student表一条数据 第一条 解决方法:数据源ODBC中 选择系统DNS 时,新建系统数据源 选择的对应驱动应该为Oracle Instant Client Dricver  这个驱动需要安装

Oracle数据库实现获取前几条数据的方法

如何在Oracle数据库中实现获取前几条数据的方法呢?就是类似SQL语句中的SELECT TOP N的方法.本文将告诉您答案,举例说明了哟!   1.在Oracle中实现SELECT TOP N :    由于ORACLE不支持SELECT TOP语句,所以在ORACLE中经常是用ORDER BY跟ROWNUM的组合来实现SELECT TOP N的查询.  简单地说,实现方法如下所示:  SELECT 列名1...列名n FROM (SELECT 列名1...列名n FROM 表名ORDER B

如何随机从数据库表中抽一条数据的SQL语句

NewID() 方法返回一个 GUID,如:EE95A489-B721-4E8A-8171-3CA8CB6AD9E4 在 select 表的时候,再增加一列为 NewID() 就可以了. SQL 语句:select *, NewID() from table 这样每条记录后就会有一个随机的 GUID 值,我们再按这个 GUID 排一下序就可以达到乱序的效果. SQL 语句:select *, NewID() as random from table order by random 我们要想随机取