MySQL-插入值(如果不存在)或更新并返回ID

用户名

我有一张桌子,看上去像f.ex。像这样:

id(primaryKey,auto_increment)| 水果 颜色

我想插入水果颜色,如果水果值不存在,否则我只想更新颜色并获取插入或更新的行ID

F.ex. 如果我有以下内容:

1234 | 苹果|

并想将苹果颜色更新为绿色,而又不知道已有一行包含苹果。我使用以下代码:

$sqli = get_db();
$q1 = "INSERT INTO table (fruit, color) VALUES ('apple', 'green') ON DUPLICATE KEY UPDATE color='green', id=LAST_INSERT_ID(id)";
$r1 = $sqli->query($q1);
$insertedOrUpdatedID = $sqli->insert_id();

我想将现有行更新为:

1234 | 苹果| 绿色

并获取$ insertedOrUpdatedID中ID(1234)。

我想我需要以任何方式标记水果专栏。当我执行此代码时,它总是创建一个新行(123 5 | apple | green),而不会更新现有行或返回已编辑的id

解:

将“水果”的类型从文本更改varchar(100)并将其KEY设置为UNIQUE即可解决此问题。此外,将代码的最后一行更改为:

$insertedOrUpdatedID = mysqli_insert_id( $sqli );

为了获得正确的ID。

祝您编码愉快!

维宾·in那

如果要按水果名称更新,则将Fruite创建为UNIQUE KEY

试试这个查询

REPLACE INTO table_name (fruit,color) VALUES ('apple','green');

要么

INSERT INTO table_name (fruit,color) VALUES ('apple','green') ON DUPLICATE KEY UPDATE color = 'green;

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如果值存在,则执行MySQL更新;如果不存在,则插入MySQL?

MySQL:如果存在值,则对行进行更新,如果值不存在,则进行插入

MySql 更新如果存在则插入如果不存在

MySQL 不存在则插入,否则返回id

mysql-如果不存在则插入

如果表不存在,则插入MySQL

如果字段存在则更新数量,如果不存在则插入新条目 mysql php

如果存在则更新,如果在MySQL中不存在则插入行

将用户代理字符串的哈希存储在MySQL表中:如果不存在则插入,返回ID

mysql插入值选择不存在

如果值不存在,将值插入MySQL表吗?

如果值不存在,MYSQL 将值插入另一个表

如何在MySQL中更新是否存在(如果存在),如果不存在则插入(又称为“ upsert”或“ merge”)?

自动更新或插入(如果不存在)到mysql数据库

更新或插入多个记录(如果不存在于mysql数据库的表中)

如果行不存在相同的值,如何在 Mysql 中插入行

MYSQL如果存在则返回一个值,如果不存在则返回另一个

MySQL:如果表中不存在,则插入记录

MySQL插入日期,如果不存在字段

MySQL过程-如果不存在则插入行

MySQL和HSQLDB中的“如果不存在,请插入”

如果记录不存在,如何在mysql中插入?

MySQL - 如果不存在,则使用子查询插入

MySQL按日期分组,如果不存在,则强制返回空值

MySQL分组强制返回空值如果表中不存在

Mysql - 如果同一表的其他行中不存在值,则更新行

MYSQL,如果值对不存在则创建行

如果条目不存在,则mysql设置默认值

MySql使用默认值(如果搜索不存在)