mysql - SQL反向搜索产品和折扣

标签 mysql sql string join sql-like

我有两张表,一张用于产品,一张用于折扣。 折扣表如下所示:

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/

相关文章:

php - 如何在 Codeigniter 上以 3 个用户角色进行良好的多级登录

mysql - 按天分组的累计总和

c# - Contains 中的正则表达式

r - 计算 R 中的尾随零

string - 如何检查文本是否包含Golang列表中的任何单词?

mysql - SQL 错误代码 1366 第 88163 行的整数值不正确

mysql - 无法理解查询

sql - Scala Doobie PSQLException : ERROR: syntax error at end of input when use "Like %"

SQL 设计、连接类型和子类型

mysql - Yii2 中的子查询 order by 和 group by