Генерировать повторяющиеся строки в запросе SELECT (MySql)

0

Возможно ли в SELECT * FROM генерировать повторяющиеся строки?

В некоторых строках у меня есть количество имен. Когда количество больше 1, я хотел бы дублировать эту запись.

example
    item    quantity
    book        1
    phone       3
    pencil      1

то, что я хотел бы получить в наборе записей,

book
phone
phone
phone
pencil

Это возможно?

  • 0
    Просто повторяйте результаты и добавляйте дополнительные записи для каждого телефона или чего-либо еще
  • 0
    Спасибо Dustytrash за ваш ответ, вы хотите добавить внутри цикла while? на основе запроса не возможно?
Показать ещё 1 комментарий
Теги:

2 ответа

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);
    }
}
  • 0
    спасибо пылиштраш я попробовал это и хорошо поработал ...
0

Возможное решение - использовать REPEAT

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

и если вы хотите в одной строке использовать GROUP_CONCAT

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

Ещё вопросы

Сообщество Overcoder
Наверх
Меню