假设我们有一个 id 数组,例如:(1,6,3,8,0) 由用户提交,其中一些可以在或不在表中。一个示例表可以是:
id content
2 ----
3 ----
8 ----
0 ----
如您所见,3、8 和 0 在输入数组和表中,因此它们必须留在表上,1 在输入数组上但不在表上,因此必须添加,最后 2 在表上但输入数组上没有,因此必须将其删除。
我可以使用 php 解决这个问题,但我想知道我是否可以只使用 mysql 查询来解决这个问题。
遍历你的数组做一个选择计数检查它是否存在,如果它不存在即:count<0 然后做一个更新或替换这将处理更新或插入方面的事情。又好又简单
对于删除,如果不在数组中,请从 tbl 中删除,其中 id NOT IN(array)
希望如果不让我知道,我可以在有机会的时候给你举个例子,这是有道理的
听起来您想要做的是带有 ON DUPLICATE KEY UPDATE 的 INSERT,或者可能是 INSERT IGNORE(取决于您是否要更改表上已存在于表中的数组中的项目的任何值)