php - 存在时更新查询,不存在时插入

标签 php mysql sql mysqli

我需要使用 WHERE 语句进行更新查询,但如果记录不存在,则应插入数据。

例如更新表 SET this = 'that', that = 'this' WHERE this = 'this' AND that = 'that'

我没有唯一的值,我有 2 列不能出现 2 次或更多次。让我举个例子:

我有一张 table :

Column1 | Column2 | Column3
---------------------------
1       | 2       | 500
1       | 3       | 500 This is OK because column2 is other than above
2       | 2       | 500 ALSO OK because column1 is other than above!
1       | 2       | 500 NOT OK! Already exists -> need update for Column3! needs to be 1000 now!

正如您在表中看到的,这两列可以出现多次!

有这个功能吗?还是先查一下有没有记录?我没有唯一 key ,因此无法使用 this .

最佳答案

这样做 首先触发选择查询

select column_name from table where condition

并使用 mysqli_num_rows 函数对获取数据行进行计数,如果条件错误,则数据集行数将为零,如果数据已获取,则数据集行数将为 1。 所以你现在要做的就是像下面的演示代码一样

$no_rows=mysqli_num_rows(..);
if($no_rows==1)
{
  update query;
}
else
{
 insert query;
}

这意味着如果行数为1,它将更新它,否则它将插入数据。

关于php - 存在时更新查询,不存在时插入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33871657/

相关文章:

javascript - 如何在 AJAX 调用中选择时用新值替换初始 PHP 变量?

php - 如何让这段代码每页循环10次?

php - 如何将父ID输入到不同表的数据库中

php给出一个空白页,没有错误

sql - 在 BigQuery 中按组和标记运行计数?

php - ORM 的 Kohana 数据库配置设置

php - 多个项目作为一项插入到数据库中

php - MySQL 表为空时 SELECT MAX() 的返回结果是什么?

mysql - 如何生成一个 View ,其中包含来自辅助 View 的总和?

sql - 如何比较一行中的重叠值?