【发布时间】:2021-04-08 13:26:32
【问题描述】:
我有下面的 mysql 表,如果传递的数量大于使用 MySql 或 PHP 的 qty_req 值,我想用 1 更新多行 approval_status 字段。
申请表:
| id | part_id | qty_req | approval_status |
|---|---|---|---|
| 1 | 16 | 20 | 0 |
| 2 | 17 | 30 | 0 |
| 3 | 16 | 40 | 0 |
| 4 | 17 | 50 | 0 |
| 5 | 17 | 60 | 0 |
例子:
$update_status=Array (
[0] => Array ( [part_id] => 17 [qty] => 90 )
[1] => Array ( [part_id] => 16 [qty] => 70 )
)
从上面的数组中,90 是part_id 17 的可用数量。我想将requisition 表中part_id 为17 的行更新为approval_status 为1,并具有以下场景:
-
将
approval_status更新为1,因为part_id17 的第一行的数量是30,小于90。 -
将
approval_status更新为1,因为part_id17 的第二行的数量是30+50=80,小于90。 -
第三行不会更新,因为
30+50+60=140的总数大于 90。
很遗憾,我找不到任何教程来实现这一点。
任何帮助将不胜感激。提前致谢。
【问题讨论】:
-
您的表中没有任何东西可以设置明确的行顺序。所以术语“第一行”、“下一行”等等 - 不存在。视觉位置排序是假的。现在任务无法解决。
-
为了做你想做的事,你必须有一个可靠的列进行排序——比如创建日期或任何对你的业务有意义的东西。
标签: php mysql codeigniter