我有两张表,一张用于产品,一张用于折扣。 折扣表如下所示:
ID | Name | Percentage | Product Name Search Param
-----------------------------------------------------------
1 | Black Friday | 50 | a
2 | White Friday | 75 | b
产品表如下所示:
ID | Name | Price
--------------------------
1 | Shoes | 2500
2 | Hat | 1500
3 | Baseball cap | 500
如果产品名称包含 Discount.Product Name Search Param 值,则产品将获得折扣百分比。我从折扣中获得产品
SELECT * FROM Products WHERE name LIKE '%a%'
但我不知道如何获得一种产品折扣。
我想获得具有 ID
2
且应享受折扣的产品。
最佳答案
您可以使用类似
条件加入:
select p.*, d.*
from product p
inner join discounts d
on p.name like concat('%', d.product_name_seach_param, '%')
注意:就目前而言,您的设计看起来不太好。最好有一张产品引用表和一张折扣引用表,以及一张将产品与折扣联系起来的连接表。
关于mysql - SQL反向搜索产品和折扣,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59245847/