我正在从 php
文件运行查询,该文件从用户获取输入。
每次用户购买产品时,我都想插入一个新行。
我的查询是什么样的:
INSERT INTO purchases (name, price)
SELECT product.name, product.price
WHERE product.name
IN (.........)
(并且,使用 php implode 代替点,它可以是
('scarf', 'jeans', 'T-shirt', 'scarf')
<小时/>
现在,如果它能达到我想要的效果那就太好了:当客户购买同一产品两次(例如,两条围巾)时,
IN
条件仅匹配一次(显然,这是一个 IN
) > 声明...)但我想匹配它两次。也就是说,如果客户购买了两条围巾,那么我希望在 purchases
中添加两个新行。
<小时/>
是否有可能在不破坏代码的情况下实现它?
最佳答案
What if they buy 10000 socks? Then I will do 10000 queries…
在这种情况下,按照您当前的方法,您必然需要执行 10k 次查询。或者 10k 联合,这几乎是等价的:
insert into ...
select ... where product_name = ...
union all
select ... where product_name = ...
union all
...
出于这个原因,根据我的评论,我强烈建议您重新访问您的架构并添加一个显然非常需要的 quantity
字段。
关于mysql - 如果行两次匹配 IF 条件,则选择该行两次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19677768/