在SELECT查询(MySql)中生成重复的行

时间:2018-09-13 13:24:36

标签: php mysql

是否有可能在SELECT * FROM中生成重复的行?

在某些行中,我有一个称为数量的字段。当数量大于1时,我想复制该记录。

example
    item    quantity
    book        1
    phone       3
    pencil      1

我想要进入记录集的是

book
phone
phone
phone
pencil

有可能吗?

2 个答案:

答案 0 :(得分:0)

您可以为每个“数量”添加一个结果,例如:

$query = "SELECT * FROM books";

$originalResult = $conn->query($sql);
$modifiedResults = array();

while($row = $originalResult->fetch_assoc()) 
{
    array_push($modifiedResults, $row);

    for($i=0; $i< $row.quantity; $i++)
    {
        array_push($modifiedResults, $row);
    }
}

答案 1 :(得分:0)

可能的解决方案是使用REPEAT

SELECT REPEAT(item, quantity) FROM <table_name> WHERE <condition>

如果要在一个字符串中使用GROUP_CONCAT

SELECT GROUP_CONCAT(REPEAT(item1, quantity)) FROM <table_name> WHERE <condition>