【发布时间】:2015-09-20 14:32:10
【问题描述】:
编辑: 我编辑了这篇文章,以增加一些复杂性。如果盒子包含重复的条形码怎么办?条形码 222222222222 在盒子中存在两次。并且在主表(或仓库)中存在 3 次。 查询如何,所以我只删除了 2 个条形码?
我选择的答案将盒子的条形码分组,因此,每个只删除一个。
大家好,
I have this table
Barcodes
+--+------------------+-------+
|ID|Barcode |DELETE |
+--+------------------+-------+
|1 | 11111111111111 | 0 |
|2 | 22222222222222 | 0 |
|3 | 22222222222222 | 0 |
|4 | 22222222222222 | 0 |
|5 | 33333333333333 | 0 |
|6 | 33333333333333 | 0 |
|7 | 33333333333333 | 0 |
|8 | 44444444444444 | 0 |
+--+------------------+-------+
ID 是一个自动增量字段。
每行是一个条形码,代表同一商品的 1 个单位。例如,我有 3 件商品由条码 33333333333333 表示
每当任何用户扫描条形码并匹配时,我都会在该过程完成时标记要删除的条形码。
update barcodes
set delete=-1
where id=(select max(barcode) as maxi from barcodes where barcode like 'x' and delete>-1)
这工作相当快。但有时,用户可能会扫描一个包含多达 150 个项目的盒子,而不是逐个扫描项目。 后端是远程服务器中的mysql表,前端是ms访问。
BOX
+------------------+
|Barcode |
+------------------+
| 22222222222222 |
| 22222222222222 |
| 33333333333333 |
| 44444444444444 |
+------------------+
我使用循环,对于框中的每个项目,我重复 sql 查询,但由于延迟,这对于 150 个项目的框最多需要 3 分钟。
您知道任何类型的查询可以使用读取框中的条码表更新我的条码表吗?
它的输出会是这样的:
+--+------------------+-------+
|ID|Barcode |DELETE |
+--+------------------+-------+
|1 | 11111111111111 | 0 |
|2 | 22222222222222 | -1 |
|3 | 22222222222222 | 0 |
|4 | 33333333333333 | -1 |
|5 | 33333333333333 | 0 |
|6 | 33333333333333 | 0 |
|7 | 44444444444444 | -1 |
+--+------------------+-------+
如果销售完成,我会删除那些标记为 delete=-1
【问题讨论】:
-
@GordonLinoff "后端是远程服务器中的mysql表,前端是ms访问。"
-
没错,解决方案可能会影响 ms-access 或 mysql(或两者,我还不知道),因此我添加了两个标签
-
所以你说有一天你可能会选择拥有一个 ms-access 数据集,所以你想要一个同时支持两种语言的解决方案
-
没有;我只是在告知设置情况。