现在,如果它能做到我想要的,那就太好了:
当客户购买同一产品两次(例如,2 条围巾)时,
是否有可能在不弄乱代码的情况下实现它?
我正在从php
文件运行查询,该文件从用户那里获取输入。
每次用户购买产品时,我都想插入一个新行。
我的查询如下所示:
INSERT INTO purchases (name, price)
SELECT product.name, product.price
WHERE product.name
IN (.........)
(并且,代替点,使用了 PHP 内爆,它可以是
('scarf', 'jeans', 'T-shirt', 'scarf')
现在,如果它能做到我想要的,那就太好了:
当客户购买同一产品两次(例如,2 条围巾)时,
IN
条件只匹配一次(显然,这是一个IN
声明......),但我想匹配它两次。也就是说,如果客户购买了两条围巾,那么我希望purchases
两行新围巾。是否有可能在不弄乱代码的情况下实现它?
如果他们买10000只袜子怎么办?然后我将进行 10000 次查询...
使用您当前的方法,在这种情况下,您必然需要执行 10k 查询。或者 10k 联合,这几乎等效:
insert into ...
select ... where product_name = ...
union all
select ... where product_name = ...
union all
...
出于这个原因,根据我的评论,我强烈建议您重新访问您的架构并添加一个显然非常需要的quantity
字段。