Mysql 基于另一个表的数据删除逗号分隔字段中的条目
首先,我使用的是MySQL 5.0.96。(总是忘了提那件事) 我有两个表(Mysql 基于另一个表的数据删除逗号分隔字段中的条目,mysql,join,Mysql,Join,首先,我使用的是MySQL 5.0.96。(总是忘了提那件事) 我有两个表(TMP\u VIN\u库存和newvehicles),我每天加载TMP\u VIN\u库存 新车是我们网站表格中当前列出的车辆 我想在新车中查找不在TMP\u VIN\u库存中的结果。(所以我可以从网站上删除它们,因为我们已经出售了它们) TMP\u VIN\u STOCK.name和newvehicles.stocknum是每个表的库存编号列 TMP\u VIN\u STOCK.name只有一个股票编号的值 newve
TMP\u VIN\u库存
和newvehicles
),我每天加载TMP\u VIN\u库存
新车
是我们网站表格中当前列出的车辆
我想在新车
中查找不在TMP\u VIN\u库存
中的结果。(所以我可以从网站上删除它们,因为我们已经出售了它们)
TMP\u VIN\u STOCK.name
和newvehicles.stocknum
是每个表的库存编号列
TMP\u VIN\u STOCK.name
只有一个股票编号的值
newvehicles.stocknum
中可以有多个用逗号分隔的值。(同一辆车只有多个库存编号)
例如:
TMP_VIN_库存表
新车表
如何找出哪些库存编号不在TMP_VIN_库存中,但在新车中?这有一些详细信息,可以让您拆分新车表中的值,并让您用结果填充(temp)表,然后不存在或不在查询将给出您需要的结果
或者,您可以保留前几天的TMP_VIN_库存(可能在表中添加一个日期字段-然后您可以将今天加载的内容与昨天加载的内容进行比较您的问题完美地说明了为什么应该规范化关系数据库中的表
如果要保留此设计,则必须执行以下操作:
loop over the newvehicles rows:
loop over the items in the comma separated field
check if the item does not exist in TMP_VIN_STOCK
更不用说mysql没有分割逗号分隔列表和
更不用说为了从逗号分隔的列表中删除所发现的内容而要经历的痛苦了
你绝对应该重新设计你的数据库。有一个用于车辆数据的表和另一个用于股票数据的表,并用外键链接它们。这样你就不必经历所有这些痛苦。你可以通过简单的查询检索你想要的数据
此外,如果某个条目不在库存中,则不应删除其数据,但计数应为零或标记为缺货。是逗号让我感到不舒服!这是一个非常糟糕的数据库设计,您希望修复它还是继续使用它?
- S12018, S12039, S12040
- Y13068, Y13093
- T12020
loop over the newvehicles rows:
loop over the items in the comma separated field
check if the item does not exist in TMP_VIN_STOCK