【问题标题】:MySQL Loop Query left from entry split entry条目拆分条目留下的MySQL循环查询
【发布时间】:2017-06-29 14:47:20
【问题描述】:

我需要在 MySQL 中查询结果:

Article | Box Quantity    
6781234 |      128
6781234 |      128
6781234 |      128
6781234 |      116
 745694 |      128
 745694 |      128
 745694 |      128
 745694 |       16
 563217 |      256
 563217 |      256
 563217 |      256
 563217 |       32

我的表是用

构建的
CREATE TABLE `orders` (
    `id` int(11),
    `order_no` int(11),
    `quantity` int(11),
    `box` int(11)
);

我已经填写了 3 个插页

INSERT INTO `orders` (`id`, `order_no`, `quantity`, `box`) VALUES (1, '6781234', '500', '128'), (2, '745694', '400', '128'), (3, '563217', '800', '256');

例如:

order_no| quantity | box    
6781234 |      500 | 128
 745694 |      400 | 128
 563217 |      800 | 256

我仍然不确定在 MySQL 中,但我在 PHP 中使用 FOR-LOOP 解决了它

$ARTICLE = 6781234;
$QUANTITY = 500;
$BOX = 128;

for($LEFT=$QUANTITY;$LEFT>=$BOX;$LEFT=$LEFT-$BOX){
        echo $ARTICLE." | ".$BOX."<br/>";
}

echo $ARTICLE." | ".$LEFT

在 MYSQL 中,我没有开始的想法。如果有人可以提供帮助,那就太好了。谢谢!!

【问题讨论】:

    标签: php mysql loops for-loop


    【解决方案1】:

    从 mysql 表中提取数据后,您可以使用相同的 php 逻辑

    //establish mysql or mysqli connection
    //I use mysqli and call its handle $mysqli
    $results = $mysqli->query("SELECT * FROM orders");
    while($r = $results->fetch_assoc()){
        extract($r);
        for($LEFT=$quantity;$LEFT>=$box;$LEFT=$LEFT-$box){
                echo $order_no." | ".$box."<br/>";
        }
        echo $order_no." | ".$LEFT."<br>";
    }
    

    【讨论】:

    • 不确定您的目标,但您可能会在 while 循环中发现以下有用的内容:echo "{$order_no} -- Full Boxes: ".floor($quantity / $box)." of {$box} with ".($quantity % $box)." pieces left over.&lt;br&gt;";
    • 嘿,谢谢您的回答。我想在 SQL 查询中解决它,因为 SELECT() 而不是 PHP
    猜你喜欢
    • 2022-01-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多