Объединение двух записей с общим полем и увеличение одного поля в MySQL и PHP - PullRequest
0 голосов
/ 10 мая 2018

У меня есть таблица следующим образом. Чего я хотел бы избежать, так это иметь два идентификатора продукта в таблице. Как я могу объединить два общих поля с помощью запроса и увеличить количество?

cartid |  prodid     | quanity |

   1   |  9226582    | 3       |

   2   |  9226582    | 5       | 

   3   |  7392588    | 1       |

Желаемые результаты состоят в том, что таблицу следует изменить следующим образом:

cartid |  prodid    | quanity |

   1   |  9226582   | 8       |

   3   | 7392588    | 1       |

Я искал ответы, но все кажется слишком сложным. Есть ли способ сделать это простым способом?

Ответы [ 2 ]

0 голосов
/ 10 мая 2018

Если вы хотите обновить таблицу в базе данных, вы можете сделать это:

create table newtable
   (`cartid` int, `prodid` int unique key, `quantity` int);

insert into newtable
   select * from yourtable order by cartid
   on duplicate key update quantity=newtable.quantity+values(quantity)

select * from newtable

Вывод:

cartid  prodid      quantity
1       9226582     8
3       7392588     1

Если вы довольны результатом, вы можете тогда

drop table yourtable
alter table newtable rename to yourtable
0 голосов
/ 10 мая 2018

Используйте group by и min-

проверьте это- http://sqlfiddle.com/#!9/6c4332/4

select min(cartid) cartid ,prodid,sum(quantity) quantity
from 
yourtable
group by prodid
order by cartid

создайте другую таблицу с той же схемой, затем

insert into newtable 
select min(cartid) cartid ,prodid,sum(quantity) quantity
    from 
    yourtable
    group by prodid
    order by cartid

Переименуйте новую таблицу

...