【问题标题】:How to remove data from mysql not in range of IDs如何从mysql中删除不在ID范围内的数据
【发布时间】:2015-09-16 09:07:16
【问题描述】:

我正在开发一个使用位于我的服务器上的主数据库的 android 应用程序。我想知道是否有办法让我喜欢将我的主数据库具有的 ID 列表发送到应用程序,然后应用程序从它自己的数据库中删除不在该范围内的每条记录?

我找到了一些例子

DELETE FROM table WHERE id BETWEEN 1 AND 10

但这将删除该范围内的 db 中的所有内容,我可能有类似 1、2、5、7、10 的内容,我想删除 3、4、6、8、9。那么是否有可能做到这一点,而无需通过循环或其他方式遍历每个 ID。

【问题讨论】:

  • 有什么标准
  • 实际问题是什么?我很确定您不想仅仅因为您不喜欢 ID 就删除特定记录...所以您可能应该关注为什么要删除这些项目,并根据该条件而不是ID。例如。 DELETE FROM [table] WHERE [whateverexpression](例如 field1
  • @Mark 我想删除一系列ID的原因不是因为我不喜欢它们,而是因为我有一个产品列表,当有人从管理面板中删除产品时在网络上,我不想从本地数据库中删除相同的产品,但我不想在每次更新之前删除整个数据库。

标签: mysql sql database sql-delete


【解决方案1】:

您可以像这样根据id列表删除记录:

delete from table where id in (3,4,6,8,9)

或(删除列表中除 id 之外的所有内容)

 delete from table where id not in (3,4,6,8,9)

【讨论】:

  • 也就是说,如果我知道 ID 的范围,我想删除。我只有主数据库的 ID 列表,我只能检索该列表。那么是否有可能使用该代码但不在(ID范围内)?
  • 如果我对您的理解正确 - 您想删除除某些指定 ID 之外的所有内容。好的,只需使用not in (3,4,6,8,9) 删除不在此列表中的所有内容
猜你喜欢
  • 1970-01-01
  • 2018-05-27
  • 2022-01-26
  • 2012-12-24
  • 1970-01-01
  • 1970-01-01
  • 2015-02-01
  • 1970-01-01
  • 2012-01-26
相关资源
最近更新 更多