php - 仅当数据不存在时才将数据从一个表插入到另一个表

标签 php mysql sql mysqli

我有以下用于将列数据从一个表插入到另一个表的 MySQLi 代码,它工作得非常好。但是,我希望它做的是仅当列数据不存在于 check_in 表中时才插入该列数据。我的代码如下:

$insertInvRoom = $db->prepare("INSERT checkin_rooms (checkin_inventory_id, checkin_room_name, checkin_inventory_room_id) SELECT inventory_id, inventory_room_name, inventory_room_id FROM inventory_rooms WHERE inventory_id = ?");
$insertInvRoom->bind_param("i", $inventoryID[$key]);
$insertInvRoom->execute();
$insertInvRoom->close();

我该怎么做?

最佳答案

您可以使用 IF NOT EXISTS 子句,如下所示:

$insertInvRoom = $db->prepare("IF NOT EXISTS (SELECT * FROM checkin_rooms WHERE checkin_inventory_id = ?) INSERT INTO checkin_rooms (checkin_inventory_id, checkin_room_name, checkin_inventory_room_id) SELECT inventory_id, inventory_room_name, inventory_room_id FROM inventory_rooms WHERE inventory_id = ?");
$insertInvRoom->bind_param("i", $inventoryID[$key], $inventoryID[$key]);

关于php - 仅当数据不存在时才将数据从一个表插入到另一个表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21616112/

相关文章:

php - 向管理员发送电子邮件通知以了解 WooCommerce 中的待定订单状态

php - 如果 session_start 自动设置,为什么我需要设置 cookie?

php - 条件Where子句(基于排名)

php - 使用散列密码连接到 MySQL?

javascript - 数组与 Postgres 中的数组重叠

sql - 检索表相交的标准SQL查询是什么?

sql - 在 PostgreSQL 中使用 group by 时如何获取最后一条记录

PHP 执行不返回任何错误,但数据库中未添加任何行

php - 如何在没有 session 和数据库的情况下从一页保存表单数据并在两页后显示

MySQL 根据另一列的内容修改一列的值