gpt4 book ai didi

mysql - 从代码循环到 Sql 查询?

转载 作者:行者123 更新时间:2023-11-30 22:35:24 25 4
gpt4 key购买 nike

编辑:我编辑帖子,以增加一些复杂性。如果盒子包含重复的条形码怎么办?条形码 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 access。

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 的那些

最佳答案

条形码的数据类型是什么?避免分组以加快更新速度。请注意,尽管使用了具有该名称的列,但您并未删除任何内容。删除 sql 中的 like> 并将它们替换为 = 逻辑,对于 mysql 服务器端代码,如下所示:

update barcodes
set delete=-1
where id=(select id from barcodes where barcode='x' and delete=0 ORDER BY id DESC LIMIT 1)

您必须调整以上内容以适应示例中 x 的具体情况。

关于mysql - 从代码循环到 Sql 查询?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32680497/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com