gpt4 book ai didi

mysql插入忽略。只需要获取所有插入的行

转载 作者:行者123 更新时间:2023-11-29 03:26:36 26 4
gpt4 key购买 nike

大家好!我有 MySQL 数据库,表在

CREATE TABLE `TableWithInnoDBEngine` (  
`userID` int(11) NOT NULL, PRIMARY KEY (`userID`),
UNIQUE KEY `userID_UNIQUE` (`userID`) )
ENGINE=InnoDB DEFAULT CHARSET=utf8;

mysql> select * from TableWithInnoDBEngine;
+--------+
| userID |
+--------+
| 1 |
| 2 |
| 3 |
+--------+

我在做:

INSERT IGNORE INTO TableWithInnoDBEngine (UserID) VALUES (1),(2),(3),(4),(5);


2 row(s) affected Records: 5 Duplicates: 3 Warnings: 0

并想获得所有受影响的行?

SELECT LAST_INSERT_ID() 只返回最后一个值(5),但需要返回

 +--------+
| userID |
+--------+
| 4 |
| 5 |
+--------+

我正在使用 PHP 5.6.17 + MySQL 5.5.46-0+deb7u1

感谢您的回复!

最佳答案

我会创建一个类似于目标表的临时表,将所有 ID 插入其中,然后您可以进行 2 次选择,一次选择重复项,一次将非重复项插入表中。

我不明白你问题的第二部分:插入从 1 到 35000 的所有 id-s,并得到重复项?它相当于:

SELECT DISTINCT userId FROM table;

更新:

当你这样做时:

$mysqli->query("INSERT IGNORE INTO TableWithInnoDBEngine (UserID) VALUES (1),(2),(3),(4),(5)");
$info = $mysqli->info();

您可以获得字符串格式的所需信息,例如“Records: 3 Duplicates: 0 Warnings: 0”,请参阅:http://php.net/manual/en/mysqli.info.php

关于mysql插入忽略。只需要获取所有插入的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35251572/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com