是否有可能在SELECT * FROM
中生成重复的行?
在某些行中,我有一个称为数量的字段。当数量大于1时,我想复制该记录。
example
item quantity
book 1
phone 3
pencil 1
我想要进入记录集的是
book
phone
phone
phone
pencil
有可能吗?
答案 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>