MySQL使用未知行更新整个表,并清除其余行

MySQL使用未知行更新整个表,并清除其余行,mysql,Mysql,我很确定这个特殊的怪癖不是重复的,所以就这样吧 我有一张服务台。在这个表中,我有大约40行以下列: Services: id_Services -- primary key Name -- name of the service Cost_a -- for variant a of service Cost_b -- for variant b of service Order -- order service is displayed in 用户可以进入管理工具并更新任何

我很确定这个特殊的怪癖不是重复的,所以就这样吧

我有一张服务台。在这个表中,我有大约40行以下列:

Services:
  id_Services -- primary key
  Name -- name of the service
  Cost_a -- for variant a of service
  Cost_b -- for variant b of service
  Order -- order service is displayed in
用户可以进入管理工具并更新任何这些信息,包括删除多行、添加行、编辑信息以及更改它们的显示顺序

我的问题是,因为我永远不知道一次提交会有多少行,可能多出1行,也可能少出100%,所以我想知道如何在我的查询中解决这个问题

提交后,将重新提交每个值。我不想这样做,但我能想到的最简单的方法是截断表并重新插入所有内容。。。但这似乎有点。。。嗯。。。令人不快的实现这一目标的最佳方式是什么

重新编辑:例如:我从40行开始,更新为36行。我仍然需要对第37-40行中的值做一些修改。我该怎么做?有什么mysql技巧或函数可以帮我做到这一点吗


非常感谢你的帮助

您稍微受到用例的限制;您正在执行作为批处理操作呈现给用户的插入/更新/截断操作,但在后端,您必须在单独的语句中执行这些操作


注意并发性:如果可以,请使用事务。

我不理解这个问题。您拥有主键列id_Services,您的用户无法更改该id。当用户提供具有给定id的新数据时,请更新该id的数据。听起来您有两种可能的更新。第一,用户使用管理工具进行编辑。一切正常。第二,有一个提交和其他事情发生。这就是问题所在吗?提交时会发生什么?@Tomalak-我使用列顺序来确定行的显示顺序,主键未被触动。@MJB-问题是数据库中的内容(例如40行)与提交更新的内容(如果用户删除了将在最后剩余的行(例如40、39、38行)中保留旧值的行)之间存在差异。。。。哦,孩子。。。我真希望我没有吮吸@english!希望这有助于澄清。@Rohjay:ID列标识行。用它来。。。识别行。