thinkphp 根据条件查数据库存在记录则修改 不存在则添加

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了thinkphp 根据条件查数据库存在记录则修改 不存在则添加相关的知识,希望对你有一定的参考价值。

表字段 id cid num
根据 id cid 查询是否存在记录 存在则修改num不存在则增加记录

参考技术A $rs = D("table");
if($rs->where(array("id"=>$id,"cid"=>$cid))->count())
    //存在
    
else
    //不存在
    

本回答被提问者和网友采纳
参考技术B

sql语句:

INSERT INTO `table`(`id`,`cid`,`num`)values(id,cid,num) ON DUPLICATE KEY UPDATE `num`=num;

参考技术C 查询啊,这个不是简单的吗?查询 id cid 的记录是否存在,存在就save,不存在就add 不就好了?

mysql连接查询

sql知识

一,两表外连接查询




1,A表和B表左连接

先将左表(A)数据查出,然后根据on后面的条件,将右表中凡是id与左表id相等的记录都查出来,与匹配的左表记录依次排成一行或多行,若无匹配的记录,则显示null。



2,A表和B表右连接

先将右表(B)数据查出,然后根据on后面的条件,将左表中凡是id与右表id相等的记录都查出来,与匹配的左表记录依次排成一行或多行,若无匹配的记录,则显示null



3,A表和B表交叉连接

没有用where子句的交叉连接将产生连接所涉及的笛卡尔积第一个表的行数乘以第二个表的行数等于笛卡尔积和结果集的大小。 Cross join 后面不能跟on 只能用where 。但是如果带返回或显示的是匹配的行数。不带条件where。





这里还有一种交叉连接表示方法




4,A表和B表完整外部连接查询(mysql 目前不支持)



二,group by if count sum

group by 将查询的结果按列或者多列的值分组,值相等的为一组

if if(表达式,value1,value2) 表达式成立时值是value1 否则是value2

count 计数

sum 求和

某表ps内容如下


mysql> select * from ps;
+------------+------+
| RQ         | SF   |
+------------+------+
2006-06-09 | s    |
2006-06-09 | s    |
2006-05-09 | f    |
2006-05-09 | f    |
2006-05-10 | s    |
2006-05-10 | f    |
2006-05-10 | f    |
+------------+------+
7 rows in set (0.00 sec)

希望求到如下结果

1
2
3

1
2
3
4
5
6
7
8
mysql>  select  RQ,sum(if(SF="s",1,0)) s ,sum(if(SF="f",1,0)) f from ps group by RQ;
+------------+------+------+
| RQ         | s    | f    |
+------------+------+------+
2005-05-09 |    2 |    2 |
2005-05-10 |    1 |    2 |
+------------+------+------+
2 rows in set (0.00 sec)

sum(if(SF="s",1,0)) 可以求得s的出现次数

以上是关于thinkphp 根据条件查数据库存在记录则修改 不存在则添加的主要内容,如果未能解决你的问题,请参考以下文章

thinkphp 数据库查询怎么查?

thinkphp 怎样获取每个id下的一条记录

PHP数据访问修改和多条件查询(20161030)

我想学习数据库增删改查

如果不存在则插入记录的MySQL条件[重复]

thinkphp 区间查询 查符合某个字段的数据 但是n个条件 用and or 配合