Возможно ли в SELECT * FROM
генерировать повторяющиеся строки?
В некоторых строках у меня есть количество имен. Когда количество больше 1, я хотел бы дублировать эту запись.
example
item quantity
book 1
phone 3
pencil 1
то, что я хотел бы получить в наборе записей,
book
phone
phone
phone
pencil
Это возможно?
Вы можете просто добавить результат для каждого количества, например:
$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);
}
}
Возможное решение - использовать REPEAT
SELECT REPEAT(item, quantity) FROM <table_name> WHERE <condition>
и если вы хотите в одной строке использовать GROUP_CONCAT
SELECT GROUP_CONCAT(REPEAT(item1, quantity)) FROM <table_name> WHERE <condition>